从另一个DLL加载DLL

时间:2015-09-03 07:45:20

标签: c++ visual-studio visual-studio-2010 dll loadlibrary

我有一个C ++ - DLL A,它将调用另一个DLL B. 如果我使用命令

LoadLibrary(L"...\\whole path\\B.dll");
一切都运转良好。但是假设有时路径可能因维护原因而改变,例如我想出了

LoadLibraryEx("B.dll", NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR);

允许移动DLL而不会出现加载问题。

此命令正在应用程序的安装目录中搜索(请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx)。

使用Visual Studio 2010 Express,当我将B.dll放在保存A.dll的文件夹中时,它对我有用。 几天前我安装了Visual Studio 2015 Express。我把B.dll放在相应的文件夹中。那没起效。我将其复制到与我的A.dll相关的每个其他文件夹中,但找不到B.dll。

注意,这两个DLL都已在VS2015中重写了!因此,它不是不同VS版本的问题。

有没有人知道如何解决这个问题?

编辑:(以前的问题理解,相关问题) 读完评论后,我发现这个命令重定向我的DLL,以便在Excels目录(即调用A.dll)中进行搜索。 但我想做的是:
VBA将使用绝对路径调用DLL A.dll。所有其他DLL(如B.dll,C.dll等)将与A.dll位于同一文件夹中。但是我想调用那些给出相对路径的DLL。我的目的是在移动所有DLL时在VBA代码中仅更改一次路径 我该怎么做?

0 个答案:

没有答案