为了账号安全,请及时绑定邮箱和手机立即绑定

Windows 7 访问冲突

Windows 7 访问冲突

C#
茅侃侃 2021-06-04 10:53:58
我正在编写一个包含一组 GUI 并使用 C++ CLR 包装器 dll 的 C# 应用程序。结构是这样的:C# APP -> C++/CLR DLL -> C++ Native Code 静态库我可以在我的开发机器(Windows server 2012)和 Windows 10 机器上运行该应用程序。但是,在 Windows 7 上,当应用程序尝试加载 DLL 时,它会因访问冲突异常而崩溃。我无法弄清楚我的 DLL 中是什么导致了崩溃以及为什么它只在 Windows 7 上。所有内容都是以 64 位编译的。此外,我相信这可能与我在 C++ 静态库中使用的 boost 库有关,但我不确定为什么它只会在 Windows 7 中引发异常。编辑:所以我一直在做更多的调试,问题发生在 LoadLibrary("myDll.dll") 而不是任何初始化。它仍然只发生在 Windows 7 而不是 Windows 10。
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

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


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信