【问题标题】:How to link a C++/Cli project to a native c++ static library如何将 C++/Cli 项目链接到本机 C++ 静态库
【发布时间】:2016-02-17 07:14:00
【问题描述】:

我有一个静态库(原生 c++)。

现在我想在 C++/CLi 项目中使用这个静态库。

编译没问题,但是运行时出现错误提示“ntdll.dll!****内存访问冲突”。

静态库和 clr 项目都使用“/MD”。

将 clr 项目链接到本机 c++ 静态库是否有效? 如果是,有什么特别需要注意的配置吗?

附言。我无法将静态库转换为 dll。

【问题讨论】:

  • 可能是某些代码没有被正确管理,因此访问冲突,可能是一个封送字符串......虽然可以是任何东西
  • @Niall 感谢您的回复。因此,将 clr 项目链接到静态 c++ 库没有任何问题。似乎程序在遇到我自己的任何代码之前就抛出了。(根据调用堆栈)
  • 我没试过;将代码简化为静态库中的一个空函数,构建它,测试它;然后开始一点一点地添加代码。仍然可能是一些导致问题的静态变量初始化代码。
  • 我觉得可能是boost.threading造成的。
  • 我不确定如何或是否可以使用 boost 和 CLI 组合。您可能需要自定义构建或提供一些自定义功能。

标签: c++ c++-cli


【解决方案1】:

动态链接boost::thread可以解决这个问题。

#define BOOST_THREAD_DYN_LINK

感谢Using boost in CLR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2017-11-25
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    相关资源
    最近更新 更多