我在我的C++应用程序的一个DLL中遇到了非常奇怪的行为.它工作并加载正常,直到我在DLL的主文件中使用#include包含单个文件.然后我收到此错误消息:
从D加载组件:/Targets/bin/MatrixWorkset.dll无法加载"D:/Targets/bin/MatrixWorkset.dll":无法加载库MatrixWorkset:对内存位置的无效访问.
现在我搜索并搜索了代码和谷歌,我无法弄清楚发生了什么.到目前为止,一切都在一个DLL中,我决定将它分成两个较小的DLL.导致问题的文件是另一个第二个库(加载正常)的一部分.
真的很感激任何想法.谢谢,哈科
可能的原因是具有类类型的全局.构造函数从中运行DllMain()
,然后DllMain()
在LoadLibrary()
返回之前运行.在DllMain()
返回之前,你可以做的事情有很多限制.