问题在于:
我正在开发一个项目,其中包含一个静态库a.lib
,一个独立的可执行文件a.exe
和一个DLL a.dll
。
DLL和可执行文件都链接到静态库a.lib
,它们只是从这个库中包装代码(对于info,这是一个开发工具,可执行文件是该工具的独立版本,DLL应该是从Unity Engine加载以在引擎中使用此工具。)
可执行文件正常工作。 但是,只要我在DLL的代码中声明:(并且没有别的)
myLib::A InstanceOfA; // class implementated in a.lib
加载DLL时遇到错误无效访问内存位置。 (如果上面的代码被注释,则DLL被加载并正确执行)
我已根据其他帖子的推荐检查了UAC,但没有成功。
问题似乎显然来自静态库中的代码,它必须在某些时候执行一些非法的东西。但是我没有足够的信息来开始调试。
请注意,即使正确加载并执行DLL(即我在上面注释代码时)依赖性walker也会发现以下依赖项丢失(所以理论上它不应该是此问题的根源,对吧?)
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
我找不到正确链接到这些DLL的方法。我努力了!!! :'(
有没有找到更多信息来解决这个问题?
(我在Win7上使用VS2015)