从非托管c++调用c#函数(通过托管包装器)
Calling a C# function from unmanaged c++ (via a managed wrapper)
我有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相关文章:
- 如何在c++17中制作一个模板包装器/装饰器
- std::vector的包装器,使数组的结构看起来像结构的数组
- 如何在c++迭代器类型中包装std::chrono
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 用pybind11包装C++抽象类时出错
- 为左值和右值的包装器实现C++范围
- C结构,其指针将被包装在unique_ptr中
- 如何包装第三方DLL在R中使用
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 将 N-arg 函数包装到另一个函数中
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 包装一个对象并假装它是一个 int
- 使用 Python Extension API 包装复杂C++类
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 包装C++类时不完整的类型 GLFWwindow
- 将函数包装器转换为 std::function
- C++函数包装器来捕获某些信号
- 创建包装升压适配器的自定义范围类
- 如何包装(撰写)增强 hana 地图并访问括号运算符(运算符 [])?
- 使用运算符*重载包装矩阵乘法