如何在Delphi中调用WinAPI函数SetDllDirectory()?

问题描述 投票:6回答:3

我想防止通过访问http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspx中所述的当前工作目录来加载恶意DLL,>

在我们的C ++应用程序中实现的解决方案是对SetDllDirectory(“”)进行WinAPI调用,这将有效地从Windows DLL加载搜索路径中删除当前工作目录。但是,似乎此解决方案不适用于我们的Delphi应用程序,因为SetDllDirectory()函数不存在。

在Delphi中是否有一个等效的调用,它与SetDllDirectory(“”)的作用相同?谢谢!

我想防止加载恶意DLL,这可能通过访问当前工作目录来实现,如http://msdn.microsoft.com/zh-cn/library/ff919712(VS.85).aspx中所述。 ...

security delphi winapi dll setdlldirectory
3个回答
7
投票

这应该可以解决问题:


4
投票

调用SetDllDirectory('')不起作用?我看到它在Windows.pas的最新版本中正确声明。如果您有未声明的Delphi版本,则可以升级到最新版本的Delphi,也可以自己声明。


3
投票
uses DSiWin32;

if not DSiSetDllDirectory('path') then
   ....
© www.soinside.com 2019 - 2024. All rights reserved.