从非托管c++调用c#函数(通过托管包装器)
本文关键字:包装 c++ 调用 函数 | 更新日期: 2023-09-27 17:53:03
我有c++源代码&我需要从c#应用程序调用一组库的头文件。我已经在我需要的函数周围创建了一个托管的c++包装器,并且能够从c#中调用它们,前后编组数据。
现在是困难的部分…
我的非托管c++库在运行时生成状态消息,我希望能够从调用c#应用程序中显示这些消息。我现在的想法是这样的:
我希望非托管c++库代码调用我的c#代码中的函数,我在创建它时传递给托管包装器。我找到了一些关于Code Project的教程,但是语法似乎已经过时了。
如果有人有一些示例代码,或者可以为我指出一个好的教程的方向,那将是伟大的。
提前感谢您的帮助。
你可以将。net委托传递给c++/CLI函数,该函数接受一个带有"匹配"参数的函数指针。
警告
- 指向函数的指针必须是STDCALL调用约定
- 如果委托是一个对象的成员,这个指向函数的指针将不被计数为保持对象存活的引用。你必须在保持回调期间维护对对象的引用
既然你认为你的例子已经过时了,我就假设你正在使用c++/CLI的新语法。下面是一个CodeProject,其中有一个示例,说明如何做到
http://www.codeproject.com/KB/mcpp/FuncPtrDelegate.aspx