[Mono-dev] C++, COM interop

Bill Holmes billholmes54 at gmail.com
Tue Jan 20 19:50:28 EST 2009


Hi,

Look at the ExtensibleClassFactory.RegisterObjectCreationCallback method.
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.extensibleclassfactory.registerobjectcreationcallback.aspx

-bill

On Tue, Jan 20, 2009 at 4:22 PM, QbProg <tholag at gmail.com> wrote:
>
> Hello Mono users and developers!
>
> I have a native C++ class library , a COM wrapper written in ATL and a .NET
> wrapper written in C++/CLI.
> Now, I'm thinking how it would be possible to write a mono wrapper that runs
> mainly in LINUX.
> Basically I see two suggested ways:
> - Write a flatten "C" version on the library and use P/Invoke
> - Use SWIG to do such a thing
>
> I don't like neither of these, since the wrapper has many functions and
> classes.
> I see a better in using a sort of COM / XPCOM interfaces.
>
> I have no problems in making the wrapper based on interfaces (like I did for
> the COM one). The only thing that I can not use are class factories since
> COM is not available in Windows. Hoever , I've got no problem in eventually
> writing a custom factory for required COM Classes.
>
> I see that there is a main difference between COM and XPCOM interop. (?)
> In com you can write
> CClass c = new cClass ()
>
> and the COM layer will call the relative class factory. In XPCOm you have to
> call manually a function to create the class.
>
> The question is : is there a way to redirect the "new" for a COM class (in
> linux) so I can directly call a custom class factory function (this time
> "internal") ?
> I.e.
> COMClass C = new COMClass;
>
> i.e. instead of calling CoCreateObject should call an internal function
> CreateCOMClass ?
>
> I don't know if I made it clear...
>
> I'll continue trying, and I'll share my experience, so maybe users can find
> an additional way to wrap C++ classes.
>
> Thank you.
> QbProg
> --
> View this message in context: http://www.nabble.com/C%2B%2B%2C-COM-interop-tp21539294p21539294.html
> Sent from the Mono - Dev mailing list archive at Nabble.com.
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


More information about the Mono-devel-list mailing list