为什么FASTMM的完整调试模式要求fulldebugmode.dll与appllcation的.exe文件位于同一个文件夹中?

时间:2012-10-21 19:05:34

标签: delphi dll

当我将DLL复制到.exe所在的同一文件夹时,它可以正常工作。 但是有一种(某种)解决方法:当我打开调试器选项并将DLL的原始路径添加到环境块时,它在我的IDE中启动项目时起作用,但是当它在我的IDE中启动时它不起作用我在资源管理器中启动project.exe文件。这不是一个真正的问题,我只想知道这些文件之间的关系。

1 个答案:

答案 0 :(得分:6)

当DLL仅按其名称链接时,DLL搜索路径用于定位它。此搜索路径是一个复杂的野兽,根据各种设置而变化。它记录在some detail on MSDN

在DLL搜索路径的所有变体中,加载可执行文件的目录是搜索的第一个目录。这是加载DLL最安全的方法。要求修改全局PATH环境变量是侵入性的。要求在系统目录中安装DLL是侵入性的,并且违反了最佳实践的所有建议。要求使用当前目录是脆弱和脆弱的,并打开安全漏洞。

在理想的世界中,应该隔离应用程序。最有效的方法是将依赖项放在与可执行文件相同的目录中。