I imagine I can compile a C# DLL and then expose it as a COM object so that it can be CreateObject'd from VBscript. I'm just not sure the steps involved in doing this...
C++/CLI can call any C# function as if it were a "regular" C++ function.
It can be very simple to do this. But there are a lot of places where it's not so simple. It depends a lot on what your class needs to be able to do, and how you intend to deploy it.
Some issues to consider:
regasm /codebase
.regasm
assign them, but they'll be different every time (and every place) the class is registered. If you need the GUIDs to remain invariant across installations, you'll need to mark members with the Guid
attribute.MarshalAs
attribute.InterfaceType
attribute.There's a very good (if dated) article about COM interop and .Net here. (A lot of things that article talks about, like generating type libraries, is handled for you automatically now.) And Microsoft's documentation is up to date, but not quite so detailed.
You should use the regasm
utility to register an assembly (just like you do regsvr32
with COM servers). Then you can use it from COM. Make sure it's installed in the GAC. The stuff should have [ComVisible(true)]
to be usable from COM.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With