Using RPC (with IDL) from C#
-
I have several C++ server programs that were written to be accessed via RPC from C++ client programs, with interfaces defined in IDL files. Now, I want a client program to be in C# and to use the same interface. I found on the web some information about running midl to produce a tlb file and then running tlbimp to produce an assembly in a dll that I could presumably import into my C# program. But I'm stuck at square one. My IDL files never delcared a library XXX { ... }. They only declared an interface. Without a library declaration, no tlb output file gets produced. But if I blindly put "library XXX {" before the interface declaration in the IDL file and "}" at the end of it, midl then gives me a million error 2295 messages saying that "handle parameter or return type is not supported on a procedure in an [object] interface". Well, every one of my interface procedures has an int return type, and of course every one has an "[in] handle_t h" first argument (or else it would be unusable for RPC). What am I missing here? Thanks.