使用具有<;互斥锁>;在CLR库中 我有一个用C++编写的实用工具库,我在很多项目中使用它。p>
我想在c++/CLI中为它创建一个部分包装器,以便将它的一些功能引入到我的vb.net项目中,但立即遇到了一个问题-使用具有<;互斥锁>;在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++类/代码或简单的前向声
<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应用程序或库中导入。 转到并搜索“所有可执行文件的控制台输出常规”。有一个例子,您可以看到具体的语法。 祝你好运