Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包装非托管C++;类,以便.Net托管客户端应用程序可以使用它们? 我们有一个Win32 C++非托管库(它在调用下调用Boost和OpenCV)。 该库包含几个公共类定义。 这些类本身公开了几个方法,这些方法的参数包括向量、共享指针 和回调作为其方法签名的一部分_C++_.net_Pinvoke_Marshalling - Fatal编程技术网

包装非托管C++;类,以便.Net托管客户端应用程序可以使用它们? 我们有一个Win32 C++非托管库(它在调用下调用Boost和OpenCV)。 该库包含几个公共类定义。 这些类本身公开了几个方法,这些方法的参数包括向量、共享指针 和回调作为其方法签名的一部分

包装非托管C++;类,以便.Net托管客户端应用程序可以使用它们? 我们有一个Win32 C++非托管库(它在调用下调用Boost和OpenCV)。 该库包含几个公共类定义。 这些类本身公开了几个方法,这些方法的参数包括向量、共享指针 和回调作为其方法签名的一部分,c++,.net,pinvoke,marshalling,C++,.net,Pinvoke,Marshalling,我们想创建一个包装器,允许.Net(托管)客户端使用这些类。 我们希望保留对现有非托管客户端应用程序的支持。所以我想这是必须的 一个单独的DLL/库。另一个需要考虑的问题是跨托管/非托管服务器的性能封送 边界。我们将在客户端应用程序和库之间来回推送图像的字节数组 每秒30-50次的速率 这样做的最佳方法是什么 有人能告诉我一些示例实现、教程和策略的方向吗? 我上一次看到这样的东西是十多年前的事了。 我似乎模模糊糊地记得平沃克和IJW的作品 任何想法都将不胜感激 谢谢, 我将创建一个围绕你的C++

我们想创建一个包装器,允许.Net(托管)客户端使用这些类。 我们希望保留对现有非托管客户端应用程序的支持。所以我想这是必须的 一个单独的DLL/库。另一个需要考虑的问题是跨托管/非托管服务器的性能封送 边界。我们将在客户端应用程序和库之间来回推送图像的字节数组 每秒30-50次的速率

这样做的最佳方法是什么

有人能告诉我一些示例实现、教程和策略的方向吗? 我上一次看到这样的东西是十多年前的事了。 我似乎模模糊糊地记得平沃克和IJW的作品

任何想法都将不胜感激

谢谢,
我将创建一个围绕你的C++的托管C++。 将您的本机C++编译成静态库,创建托管C++ C++ DLL,引用静态C++库并编写包装代码。我已经做过几次了,这很简单


查看此示例:

如果这是一个高性能应用程序,那么我将避免如此频繁地向.NET进行数据传输。试着找到一种方法来最小化执行的净代码量,尤其是在一个紧密的循环中。我建议通过COM接口导出功能,而不是管理C++或任何性质的互操作。大部分繁重的计算是在非托管层中完成的。托管层捕获数据/图像,将其推送到非托管库进行处理,然后使用结果。你能扩展COM接口的概念吗?不需要静态库。在中正确编译代码。而且,现在是C++ + CLI,而不是管理C++。