例如,经过一些重构后,我想从不同的子文件夹加载相同的DLL以比较结果。我要加载的DLL有一些依赖的DLL链接到它,因此它们是隐式加载的。 为了简化工作并保持DLL的概述,我将它们组织在当前工作目录下的不同子文件夹中。所以我有以下结构:
CurrentWorkingDirectory
-> MyApp.exe
-> DllSubDir1
---> ManuallyLoaded.dll
---> DynamiclyLinked.dll
-> DllSubDir2
---> ManuallyLoaded.dll
---> DynamiclyLinked.dll
我设法通过使用LoadLibraryExA
和指向不同DLL的绝对路径来加载了ManuallyLoaded.dll的两个不同版本。因此,我可以在调试器中看到两个已加载的ManuallyLoaded.dll实例。
但是,很不幸,DynamiclyLinked.dll仅被加载一次。
要在进行一些重构后比较ManuallyLoaded.dll的各个方面,我还想加载DynamiclyLinked.dll的潜在不同版本。有没有一种方法可以强制应用程序从不同的文件夹隐式加载相同的DLL?还是我需要重命名DynamiclyLinked.dll的潜在不同版本?
答案 0 :(得分:0)
经过一段时间的调查和测试,我终于在这里找到了可能的解决方案:https://stackoverflow.com/a/5018526/11264951
就我而言,有必要
#pragma comment(linker, "/manifestdependency:\"acme.common'processorArchitecture='*' version='1.0.0.0' type='win32'\"")