C++ 如何并排加载同名DLL(Visual Studio)
我有一个关于并行组件的问题 情况如下: 我有一个可执行文件,C++ 如何并排加载同名DLL(Visual Studio),c++,visual-studio-2012,dll,sxs,C++,Visual Studio 2012,Dll,Sxs,我有一个关于并行组件的问题 情况如下: 我有一个可执行文件,app.exe,它通过搜索plugins目录来加载插件app.exe依赖于某个a.dll 我正在开发一个插件,它依赖于一个同名的较旧的自定义版本a.dll。将这个旧的定制版本更新到新版本是不可能的,所以我想我可能能够同时加载两个A.dll文件 以下是目录结构: \bin app.exe A.dll (newer version) \plugins myplugin.dll A.dll的两个版本本
app.exe
,它通过搜索plugins
目录来加载插件app.exe
依赖于某个a.dll
我正在开发一个插件,它依赖于一个同名的较旧的自定义版本a.dll
。将这个旧的定制版本更新到新版本是不可能的,所以我想我可能能够同时加载两个A.dll
文件
以下是目录结构:
\bin
app.exe
A.dll (newer version)
\plugins
myplugin.dll
A.dll的两个版本本身都依赖于大量其他dll,这些dll可能存在类似的版本问题。(我还应该提到我正在使用一个64位的应用程序,如果这有区别的话。)
如何在Visual Studio中设置它,使我可以同时加载A.dll
库,以便myplugin.dll
使用较旧版本,而app.exe
使用较新版本?由于它们是插件,您可以通过调用LoadLibrary
或类似命令来加载它们。在这种情况下,您只需将完整路径传递给DLL即可加载。事实上A.DLL
具有许多其他依赖项是否重要?实际上,它更像是myplugin.dll
调用dep.dll
,调用bin\A.dll
。我希望dep.dll
调用bin\plugins\A.dll
(但无法修改dep.cpp
)。如果我在myplugin.cpp
中尝试LoadLibrary
,我会得到一个“首次机会异常”(未找到入口点)错误。在这种情况下我该怎么办?这些细节都不是问题