Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
使用具有<;互斥锁>;在CLR库中 我有一个用C++编写的实用工具库,我在很多项目中使用它。p>_C++_C++ Cli_Clr - Fatal编程技术网

使用具有<;互斥锁>;在CLR库中 我有一个用C++编写的实用工具库,我在很多项目中使用它。p>

使用具有<;互斥锁>;在CLR库中 我有一个用C++编写的实用工具库,我在很多项目中使用它。p>,c++,c++-cli,clr,C++,C++ Cli,Clr,我想在c++/CLI中为它创建一个部分包装器,以便将它的一些功能引入到我的vb.net项目中,但立即遇到了一个问题- <mutex> is not supported when compiling with /clr or /clr:pure. 使用/clr或/clr:pure编译时不支持。 我也不能用互斥来删除这些东西,因为我的ria日志实用程序是我想要这个包装器的主要目的,而且它严重依赖互斥 所以。。有办法解决这个问题吗 > P>如果不能通过包装器C++类/代码或简单的前向声

我想在c++/CLI中为它创建一个部分包装器,以便将它的一些功能引入到我的vb.net项目中,但立即遇到了一个问题-

<mutex> is not supported when compiling with /clr or /clr:pure.
使用/clr或/clr:pure编译时不支持
我也不能用互斥来删除这些东西,因为我的ria日志实用程序是我想要这个包装器的主要目的,而且它严重依赖互斥

所以。。有办法解决这个问题吗

> P>如果不能通过包装器C++类/代码或简单的前向声明来隐藏在CLR(互斥体、原子、……)中非法的C++头,则

我成功完成类似任务的唯一其他方法是使用创建互操作程序集:
一个非托管C++层,其唯一目的是隔离真正的C++代码(包含互斥体、原子和CLR中的任何非法) 一个管理C++层,它使用非托管层,并将其API /服务暴露到.NET世界。 不幸的是,它很难看,很难维护,而且很容易出错。

只有外部“C”导出的函数才能从本机DLL加载到/clr:pure。 你必须用全局C风格的函数包装你的功能。您可以将其导出为DLL,并在/CLR应用程序或库中导入。 转到并搜索“所有可执行文件的控制台输出常规”。有一个例子,您可以看到具体的语法。 祝你好运