How to call managed c# functions from unmanaged c++
相关问题
- Sorting 3 numbers without branching [closed]
- Sorting 3 numbers without branching [closed]
- Graphics.DrawImage() - Throws out of memory except
- Why am I getting UnauthorizedAccessException on th
- How to compile C++ code in GDB?
I used C++/CLI wrapper classes described here and it was relatively easy to implement.
I used COM interop first, but by now I switched to IJW (it just works), as it is a lot simpler. I have a wrapper C++/CLR DLL (compile with /clr).
A simple example (using statics to make the calls easier):
In the DLL I can reference namespaces as follows:
And call it:
Now you have an unmanaged DLL export "CallManagedCode" which calls into the managed code.
Of course, you also have to convert data between the managed/unmanaged boundary. Starting with VS2008, Microsoft includes a marshal-helper for converting between unmanaged and managed types. See http://msdn.microsoft.com/en-us/library/bb384865.aspx
Or use a project of mine that allows C# to create unmanaged exports. Those can be consumed as if they were written in a native language.
RE: How to call managed C# code from an unmanaged C++ application?
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.interop/2005-05/msg00030.html
Calling Managed .NET C# COM Objects from Unmanaged C++ Code ...
http://www.codeproject.com/KB/cs/ManagedCOM.aspx
Wrapping a managed C# DLL in a unmanaged C++ project : dll .
http://www.experts-exchange.com/Programming/Languages/.NET/Q_22006727.html