如何将dll包含为相对路径



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

MSDN::

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

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

  • 如果DLL在已知DLL列表中对于运行应用程序的Windows版本系统使用已知DLL的副本(以及已知DLL的依赖项DLL(如果有的话)。系统不搜索DLL。对于当前系统上的已知DLL,请参阅以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session经理\知道DLL。

Dlls的标准搜索顺序是:

  1. 从中加载应用程序的目录
  2. 当前目录
  3. 系统目录
  4. 16位系统目录。没有任何函数可以获取此目录的路径,但会对其进行搜索
  5. Windows目录
  6. PATH环境变量中列出的目录

您可以始终将Dll与应用程序放在同一目录中。将其作为应用程序中的资源携带是不可取的。

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

最新更新