【问题标题】:Setting Library path for win32 console applications为 win32 控制台应用程序设置库路径
【发布时间】:2009-03-29 09:02:47
【问题描述】:

当我尝试执行简单的“HelloWorld”win32 控制台应用程序时,出现“找不到 dll:重新启动应用程序可能会解决问题”错误。 我知道.dll 的位置。 从命令提示符执行 .exe 时如何指定其位置?

PS:将.dll复制到.exe的当前目录似乎可以解决问题,但这种方法不适合这种情况。

【问题讨论】:

    标签: windows dll msdn


    【解决方案1】:

    DLL 加载发生在窗口的深处。

    如果在与应用程序相同的目录中找不到 DLL,则会自动扫描 PATH 以找到该目录。

    因此,解决您的问题的最简单方法是将包含 DLL 的目录添加到您的 PATH 中。根据您的代码何时需要加载 DLL,您可以(临时)从“HelloWorld”应用程序内部修改 PATH。

    【讨论】:

      【解决方案2】:

      LoadLibraryEx 的文档对 Windows 如何搜索您的 dll 进行了一些讨论。如果您可以构建 DLL 的完整路径或使用 SetDllDirectory 函数将目录添加到搜索路径,则可以尝试使用 LOAD_WITH_ALTERED_SEARCH_PATH 标志。

      【讨论】:

        【解决方案3】:

        要手动将路径永久添加到 Windows PATH(永久 = 直到您将其删除),右键单击我的电脑>属性>高级>环境变量>系统变量>路径>编辑>变量值,添加分号(这意味着“除了之前的所有”)并粘贴您的dll的完整路径。

        Windows 每次在当前目录中找不到东西时都会搜索路径。

        【讨论】:

          【解决方案4】:

          发件人:http://msdn.microsoft.com/en-us/library/7d83bc18.aspx

          对于隐式和显式链接,Windows 首先搜索 “已知 DLL”,例如 Kernel32.dll 和 User32.dll。窗户然后 按以下顺序搜索 DLL:

          1. 当前进程的可执行模块所在目录。

          2. 当前目录。

          3. Windows 系统目录。 GetSystemDirectory 函数检索此目录的路径。

          4. Windows 目录。 GetWindowsDirectory 函数检索此目录的路径。

          5. PATH 环境变量中列出的目录。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-04
            • 2011-02-13
            • 2012-11-14
            • 2011-03-10
            • 1970-01-01
            • 2023-03-14
            • 2011-06-07
            • 1970-01-01
            相关资源
            最近更新 更多