【问题标题】:Use C++ DLL library project in C++ /CLR project在 C++ /CLR 项目中使用 C++ DLL 库项目
【发布时间】:2015-05-13 11:42:13
【问题描述】:

我正在尝试在 C++ /CLR 托管包装器项目中使用非托管 C++ DLL 库项目,但由于非托管项目使用 <thread> 托管项目将无法构建: error C1189: #error : <thread> is not supported when compiling with /clr or /clr:pure.

要明确:托管项目本身使用<thread>,只有引用的非托管

无论如何我可以在非托管项目中使用线程并且仍然让它与托管包装器项目正确交互吗? (更改项目性质以使用托管线程不是一种选择)


编辑:我收到-2。我不知道为什么,我找不到任何关于这个特定案例的东西,我也不知道到底出了什么问题,但托管项目似乎也在编译非托管项目?

【问题讨论】:

    标签: c++ visual-c++ dll clr


    【解决方案1】:

    非托管项目的包含文件是否直接或间接包含<thread>?这可能是错误的原因。

    尽量让非托管项目的接口头只定义接口,不包含任何依赖于实现的包含文件。

    【讨论】:

    • 被包装的本机类的标头包含<thread>,因为thread 是该类的私有成员。关于如何隐藏它的任何建议?
    • @WhiteNightFury:您能否使用 PIMPL 隐藏部分或全部实现细节? msdn.microsoft.com/en-us/library/hh438477.aspx
    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2021-09-20
    • 2019-10-07
    相关资源
    最近更新 更多