设置win32控制台应用程序的库路径

时间:2009-03-29 09:02:48

标签: windows dll msdn

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

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

4 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

来自:http://msdn.microsoft.com/en-us/library/7d83bc18.aspx

  

通过隐式和显式链接,Windows首先搜索   "已知的DLL",例如Kernel32.dll和User32.dll。 Windows然后   按以下顺序搜索DLL:

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

  2.   
  3. 当前目录。

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

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

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

  10.