in MSDN所述的DLL查找路径是:
这带来了以下疑问:
假设我在某个目录中有一个可执行文件,例如:c:\execdir\myexe.exe
,它会加载PATH
中找到并位于c:\dlldir\mydll.dll
的DLL。现在,假设mydll.dll
尝试使用LoadLibrary
加载另一个DLL。首先会查看哪个目录 - c:\dlldir
或c:\execdir
?
我认为上面引用的查找规则说它将是c:\execdir
,因为它据称是“当前进程的可执行模块所在的目录”,但是从另一个获得确认会很好源。
编辑:此外,c:\dlldir\
是否在处查看?毕竟,它既不是.exe所在的位置,也不是“当前目录”(如果这意味着一般意义上的话)。
P.S。我对Windows XP和7都感兴趣。
答案 0 :(得分:4)
是的,它首先是可执行文件目录,在某些情况下它已实现this could lead to a security vulnerability。该页面上有建议,以确保您的应用程序不会通过此机制受到损害。