我的项目中有一个dll,我通过绝对路径(C:\ test \ something \ abc.dll)来加载我的项目。如何相对加载它还是有更好的方法将它包含在visual studio项目中?
答案 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的标准搜索顺序是::
- 加载应用程序的目录。
- 当前目录。
- 系统目录。
- 16位系统目录。没有函数可以获取此目录的路径,但会搜索它。
- Windows目录。
- PATH 环境变量中列出的目录。
醇>
您可以随时将您的Dll与应用程序放在同一目录中。在应用程序中将其作为资源提供是不可取的。