-->

Calling C# dll from C++

2020-04-28 07:46发布

问题:

I have a native C++ DLL, and I want to import a C# DLL and use some of its functions (for example connecting to a database).

Now I have read that you can turn the DLL into a TLB COM file, and I have done that no problems. My problem lies with the C++. To call that TLB file I need to set CLR support. I use themida to help secure all my DLL's as well as PEC. They do not support .net DLL's and when I enable CLR the programs recognize it as a .net DLL.

Is there anyway to call a c# function inside a .net DLL from inside a native C++ DLL without enabling CLR?

回答1:

The best way in my opinion is to crate a C++/CLI lib that you can use to communicate between the layers.

This 3rd party library will be compiled with /clr enabled.

Then you can use the header definitions to the proper c++ function wrappers to call the C# functions.

C++/CLI can help you manage the call just the way you want it, and let you design the type casts the way you want them.