Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何并排加载同名DLL(Visual Studio)_C++_Visual Studio 2012_Dll_Sxs - Fatal编程技术网

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
,我会得到一个“首次机会异常”(未找到入口点)错误。在这种情况下我该怎么办?这些细节都不是问题