使用 c# 我正在尝试加载用 C++/Cli 编写的 dll,我使用了以下命令:
Assembly assembly = Assembly.Load(assemblyName);
以前它没有任何问题,我不确定发生了什么变化,但今天每当我尝试加载 dll 时,我开始收到以下错误
System.AccessViolationException: {“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”}
dll 和读取它的代码都在同一个解决方案中,并且 dll 本身经常更改(因此我使用 dll)。
有谁知道什么可能导致这个异常?
附录:
我已将其缩小到我最近添加的一个使用 boost 的库。我使用BOOST_LIB_DIAGNOSTIC
并发现它使用以下内容:
链接到 lib 文件:libboost_date_time-vc100-mt-gd-1_54.lib
链接到 lib 文件:libboost_thread-vc100-mt-gd-1_54.lib
链接到 lib 文件:libboost_system-vc100-mt-gd-1_54.lib
链接到 lib 文件:libboost_chrono-vc100-mt-gd-1_54.lib
找到了一个似乎处理类似问题的提升帖子,但实际上并没有解决我的问题。它说要使用BOOST_ALL_DYN_LINK
预处理器定义,但所做的只是导致进一步的链接错误:
致命错误 LNK1104:无法打开文件 'boost_date_time-vc100-mt-gd-1_54.lib'