Registration-free COM client

John via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 29 12:21:50 PDT 2016


On Wednesday, 29 June 2016 at 14:51:10 UTC, Thalamus wrote:
> I was hoping there would be a code-only solution, and I'm glad 
> to see one is possible. It isn't quite working for me yet, 
> though. I can get the HINSTANCE in the CoLoadLibrary call, but 
> GetProcAddress for DllGetClassObject fails, with 
> ERROR_PROC_NOT_FOUND.
>
> I've never written a COM server before (only clients), so I 
> must be building the C# assembly incorrectly. I'm just not sure 
> how. Everything across the board is built as 64-bit, and I've 
> selected "Register for COM interop". The C# is pretty simple:

A little research reveals that C# COM servers don't export 
DllGetClassObject, or any of the COM server plumbing. 
"Registering for COM interop" merely adds the registry entries - 
which is the step you're trying to avoid by loading the DLL 
dynamically. Then you'd run regasm on it to generate a type 
library. 
https://msdn.microsoft.com/en-us/library/aa645738(v=vs.71).aspx


More information about the Digitalmars-d-learn mailing list