将Dll保留在自定义文件夹中

时间:2012-09-26 15:20:44

标签: c++ windows

我有一个C ++程序,依赖于外部Dll [比方说依赖于rel.dll],现在如果我保留..

  • dependent.dll在可执行文件夹中,它工作正常,但如果我保持
  • dependent.dll在somne​​自定义文件夹中,它没有。

我试过了

LPCTSTR deplibFullPath = "C:\Program Files\My_Program\Dlls\dependent.dll";
HMODULE hMod = LoadLibraryEx(deplibFullPath , NULL, LOAD_WITH_ALTERED_SEARCH_PATH);

它返回非null但是每当我访问dependent.dll中的任何函数时,它都无法正常工作(崩溃)

知道我做错了什么或者我需要做些什么。

由于

-Pankaj

3 个答案:

答案 0 :(得分:3)

你的道路是错的。它应该是

LPCTSTR deplibFullPath = "C:\\Program Files\\My_Program\\Dlls\\dependent.dll";

因为\用于转义字符串中的特殊命令。

答案 1 :(得分:2)

也许你的dll需要来自同一个文件夹的其他dll(依赖项)。尝试在加载{{}}之前调用AddDllDirectory

我认为你路径中的单个“\”只是一个复制和粘贴错误......

答案 2 :(得分:0)

我得到了答案,问题不在我的LoadLibraryEx函数中,但我没有正确使用GetProcAddress。 :(