Guten Morgen,
spontan fällt mir auf, dass deine Funktionen mitunter keinen definierten Rückgabewert liefern. Vielleicht besser so:
Delphi-Quellcode:
function GetResourceData(resName, resType: PAnsiChar): Pointer; stdcall;
var
hRes, hMem: Cardinal;
begin
Result := nil;
hRes := FindResource(0, resName, resType);
if hRes <> 0 then
begin
hMem := LoadResource(0, hRes);
if hMem <> 0 then
Result := LockResource(hMem);
end;
end;
function GetResourceSize(resName, resType: PAnsiChar): Cardinal; stdcall;
var
hModule: Cardinal;
begin
hModule := 0;
Result := FindResource(hModule, resName, resType);
if Result <> 0 then
Result := SizeOfResource(hModule, Result);
end;
Wenn keine schwerwiegenden Gründe dagegen sprechen, dann würde ich die Funktionen ersetzen durch:
Delphi-Quellcode:
procedure SaveToFile(const fileName, resName: string; resType: PChar);
begin
with TResourceStream.Create(0, resName, PChar(resType)) do
try
SaveToFile(fileName);
finally
Free;
end;
end;
Wenn du statt des Fehlercodes einen Klartext ausgeben möchtest, dann kannst du das so machen:
ShowMessage(SysErrorMessage(GetLastError));
Grüße vom marabu