我正在尝试在我的 Delphi 项目中加载一个库,该库可以位于两个位置。因此,要加载它,我使用以下代码:
try
FHandle:=LoadLibrary(('some\address'));
except on EAccessViolation do
FHandle:=LoadLibrary(('another\address'));
end;
但是,我遇到了问题,因为它从未达到异常,我收到错误,存在访问冲突,但它不会尝试从其他地址加载...
有人知道原因吗?
谢谢
最佳答案
LoadLibrary
不会引发异常。它是一个 Win32 函数。咨询documentation如果失败,您将看到它返回NULL
。
您的代码应该是:
FHandle := LoadLibrary('some\address');
if FHandle = 0 then
FHandle := LoadLibrary('another\address');
if FHandle = 0 then
// handle the error, probably by raising an exception
另一个选择可能是使用 FileExists
来检查哪个可能位置包含该文件。
关于delphi - 尝试加载库时出现 AccessViolation 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742489/