我们有一个 win32 C++ 非托管库(它在幕后调用 Boost 和 openCV)。 该库包含几个公共(public)类定义。 这些类本身公开了几个方法,其参数包括 vector 、共享指针 和回调作为其方法签名的一部分。
我们想创建一个包装器,允许 .Net(托管)客户端使用这些类。 我们希望保留对现有非托管客户端应用程序的支持。所以我想这必须是 一个单独的 DLL/库。另一个考虑因素是跨托管/非托管的性能编码 边界。我们将在客户端应用程序和库之间来回推送图像的字节数组 每秒 30-50 次的速率。
执行此操作的最佳方法是什么?
有人可以为我指明任何示例实现、教程和策略的方向以帮助我们入门吗? 我上一次看到这样的东西已经是 10 多年前的事了。 我似乎依稀记得 pInvoke 和 IJW 的工作原理。
任何想法将不胜感激。
谢谢, 约翰B
最佳答案
我会创建一个围绕您的 native C++ 的托管 C++。 将 native C++ 编译成静态库,创建引用静态 C++ 库的托管 C++ DLL 并编写包装器代码。我已经做过几次,非常简单。
查看此示例:http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-minutes#A8
关于c++ - 包装非托管 C++ 类以便 .Net 托管客户端应用程序可以使用它们的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28908471/