Zitat von
NicoDE:
Zitat von
Rakshasa:
WOW64 wurde berücksichtigt
Dann verstehe ich die Verwendung von LoadLibrary nicht. Wenn die FileSystem-Redirection für den Thread deaktiviert wurde und es sich um eine 64-Bit-Bibliothek handelt (und ich mal davon ausgehe, dass du keinen 64-Bit-Pascal-Compiler verwendest), dann kannst du nur LoadLibaryEx(..., LOAD_LIBRARY_AS_DATAFILE) verwenden.
// noch ein Versuch, nachdem mein Post gelöscht wurde?!
Also: An LoadLibraryEx habe ich überhaupt nicht gedacht... immer dieses 64-Bit ...
Mit folgendem Code funktioniert es einwandfrei:
Code:
function GetStringFromDLL(const lib: string; id: LongWord): string;
var
hLib: THandle;
buf: array [Byte] of Char;
begin
ChangeFSRedir(true); // Abstellen der 64-Bit-Redirection
hLib := LoadLibraryEx(PChar(lib), 0, LOAD_LIBRARY_AS_DATAFILE);
if LongBool(hLib) then begin
try
SetString(Result, buf, LoadString(hLib, id, @buf[0], SizeOf(buf)));
finally
FreeLibrary(hLib);
end;
end;
ChangeFSRedir(false); // Zurückstellen der 64-Bit-Redirection
end;
Der Aufruf:
Code:
GetStringFromDLL('C:\Windows\system32\wudfsvc.dll', 1000);
Danke an alle!!!