【问题标题】:Keep Dll in custom folder将 Dll 保存在自定义文件夹中
【发布时间】:2012-09-26 15:20:43
【问题描述】:

我有一个依赖外部 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 中的任何函数时,它都无法正常工作(崩溃)

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

谢谢

-潘卡杰

【问题讨论】:

    标签: c++ windows


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 注意:这是 Windows 8 的功能。
      • 感谢 Johnny,但我目前正在使用 Windows 7,并且 AddDllDirectory 在 Windows 8 上最低可用 :( 是的,单个“\s”只是输入错误。
      • 好的。这可能会有所帮助:stackoverflow.com/questions/1919125/…
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 2015-01-12
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多