Reputation: 976
I have a DLL written in C++, and I want to pass a C# function to a function in the C++ DLL and call the C# function from C++. How would I do this? Thanks in advance, and please keep your answers simple. I don't think I'll need to post a code sample for this one, but if you need one please ask.
Upvotes: 0
Views: 7318
Reputation: 754515
There are generally two ways to accomplish this: COM Interop and Reverse PInvoke. If you are passing around a lot of objects with behaviors then COM interop is likely you're best bet. Here though it sounds like you're just trying to pass a single function around. If so then Reverse PInvoke is what you want.
Here is a nice tutorial on the subject
The basic process though is fairly similar to normal PInvoke.
It can now be invoked as a normal function pointer in native code
Upvotes: 4