-
Jon © (15.08.10 20:51) [0]In Err.pas there is SafeLoadLibrary
{ SafeLoadLibrary calls LoadLibrary, disabling normal Win32 error message
popup dialogs if the requested file can't be loaded. SafeLoadLibrary also
preserves the current FPU control word (precision, exception masks) across
the LoadLibrary call (in case the DLL you're loading hammers the FPU control
word in its initialization, as many MS DLLs do)}
But when I try using it then I get a Win32 error message:
program Test;
uses Windows, KOL, err;
var LibHandle: THandle;
begin
// The following file cannot be registered - Windows XP
LibHandle := SafeLoadLibrary('c:\windows\system32\shell.dll');
FreeLibrary(LibHandle);
end.
This is the message:
---------------------------
Test.exe - Bad Image
---------------------------
The application or DLL c:\windows\system32\shell.dll is not a valid Windows image. Please check this against your installation diskette.
---------------------------
OK
---------------------------
Is there a bug in err.pas? -
Did you try same code in VCL? You'll get the same message, I'm sure.
-
Jon © (15.08.10 22:46) [2]Probably, I shall check later, but why state in the documentation that SafeLoadLibrary disables the error message?
-
Jon © (16.08.10 00:50) [3]FYI, this works in both KOL and VCL:LibHandle := SafeLoadLibrary('c:\windows\system32\shell.dll',SEM_FAILCRITICALERRORS or SEM_NOOPENFILEERRORBOX);