Windows 7 访问冲突

Windows 7 Access Violation

我正在编写一个包含一组 GUI 并使用 C++ CLR 包装器 dll 的 C# 应用程序。结构是这样的:

C# APP -> C++/CLR DLL -> C++ 本机代码静态库

我可以 运行 我的开发机器(Windows 服务器 2012)和 Windows 10 机器上的应用程序。但是在 Windows 7 上,当应用程序尝试加载 DLL 时,它因访问冲突异常而崩溃。我无法弄清楚我的 DLL 中是什么导致了崩溃以及为什么它只出现在 windows 7 上。所有内容都是以 64 位编译的。我也相信它可能与我在 C++ 静态库中使用的 boost 库有关,但我不确定为什么它只会在 windows 7.

中抛出异常

编辑:

所以我一直在进行更多调试,问题发生在 LoadLibrary("myDll.dll") 而不是任何初始化。它仍然只发生在 windows 7 而不是 windows 10.

问题出在增强线程上。我的静态库使用内部使用升压线程的升压库。为了解决这个问题,我在我的静态库和 C++/cli 包装器 dll 中添加了一个命令行 define /DBOOST_THREAD_DYN_LINK。这意味着我必须将 boost thread、chrono 和 system 的 dll 文件与我自己的 dll 一起包括在内。为什么这只发生在 Windows 7 而不是 10 我不确定,但我猜这与 Windows 7 上的内核以及它如何处理 boost 线程的工作方式有关。