如何将dll包含为相对路径?

时间:2015-11-13 04:30:04

标签: c++ visual-studio-2013 dllimport

我的项目中有一个dll,我通过绝对路径(C:\ test \ something \ abc.dll)来加载我的项目。如何相对加载它还是有更好的方法将它包含在visual studio项目中?

2 个答案:

答案 0 :(得分:2)

您可以指定不带路径的dll名称,并将dll放在加载它的可执行文件所在的同一目录中,或放在当前目录(启动程序的目录)中。

答案 1 :(得分:2)

MSDN ::

  

在系统搜索DLL之前,它会检查以下内容:

     
      
  • 如果已在内存中加载具有相同模块名称的DLL,则为系统   使用加载的DLL,无论它在哪个目录中。系统   不搜索DLL。

  •   
  • 如果DLL位于已知DLL列表中   对于运行该应用程序的Windows版本,   系统使用其已知DLL的副本(以及已知的DLL依赖   DLL,如果有的话)。系统不搜索DLL。有关的列表   当前系统上的已知DLL,请参阅以下注册表项:   HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\会话   管理器\的KnownDLLs。

  •   

Dlls的标准搜索顺序是::

  
      
  1. 加载应用程序的目录。
  2.   
  3. 当前目录。
  4.   
  5. 系统目录。
  6.   
  7. 16位系统目录。没有函数可以获取此目录的路径,但会搜索它。
  8.   
  9. Windows目录。
  10.   
  11. PATH 环境变量中列出的目录。
  12.   

您可以随时将您的Dll与应用程序放在同一目录中。在应用程序中将其作为资源提供是不可取的。