从C++DLL调用C#函数

本文关键字:函数 调用 C++DLL | 更新日期: 2023-09-27 18:26:50

我有一个用C++编写的DLL,我想把一个C#函数传递给C++DLL中的一个函数,并从C++调用C#函数。我该怎么做?提前谢谢,请保持简单的回答。我想我不需要发布这个的代码示例,但如果你需要,请询问。

从C++DLL调用C#函数

通常有两种方法可以实现这一点:COM互操作和反向PInvoke。如果你正在传递许多具有行为的对象,那么COM互操作可能是你的最佳选择。不过,这里听起来你只是在尝试传递一个函数。如果是这样,那么反向PInvoke就是您想要的。

这里有一个很好的教程关于主题

  • http://tigerang.blogspot.com/2008/09/reverse-pinvoke.html
  • http://blogs.msdn.com/b/thottams/archive/2007/06/02/pinvoke-reverse-pinvoke-and-stdcall-cdecl.aspx

不过,基本过程与正常的PInvoke相当相似。

  • 定义至少使用一个函数指针的本机入口点
  • 将本机指针定义为托管代码中的委托
  • 将学员向下穿过入口点

它现在可以在本机代码中作为普通函数指针调用