0

我有一个依赖外部 Dll [让我们说dependent.dll] 的 C++ 程序,现在如果我保留..

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

我努力了

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

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

知道我在哪里做错了,或者我需要做什么额外的事情。

谢谢

-潘卡伊

4

3 回答 3

3

你的路径是错误的。它应该是

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

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

于 2012-09-26T15:24:23.490 回答
2

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

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

于 2012-09-26T15:29:35.830 回答
0

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

于 2012-09-26T18:03:15.703 回答