Hallo Leute,
ich habe folgendes Problem und muß es bis nach Weihnachten gelöst haben:
Ich habe ein paar Dateien über .rc in die Ressourcen meiner DLL eingebunden:
<PRE>
resfils.rc
1000 FILES "test1.exe"
1001 FILES "test2.exe"
</PRE>
und kann diese aber nicht aufrufen.
Hier mein Code:
<PRE>
function InstallFileFromResource(ID: PChar; FileName: String): Boolean;
var
stFile : TFileStream;
hRes, hResFound : THandle;
P : ^Char;
N : integer;
i : integer;
begin
FillChar(buffer,MAX_PATH,#0);
// ID ist gleich '1000';
hResFound := FindResource(hInstance, ID, 'FILES');
if hResFound <> 0 then begin
hRes := LoadResource(hInstance,hResFound);
if hRes <> 0 then begin
N := SizeOfResource (HInstance,hRes) ;
P := lockresource (hRes) ;
stFile := TFileStream.Create(FileName,fmCreate);
stFile.Write(P^,N);
FreeAndNil(stFile);
UnLockResource(hRes);
FreeResource(hRes);
WinExec32AndWait(FileName);
Result := True;
end else begin
Result := False;
WriteDebugProtokoll('Resource konnte nicht geladen werden!');
end;
end else begin
Result := False;
WriteDebugProtokoll('Resource konnte nicht gefunden werden!');
end;
end;
</PRE>
In meinen Debug Protokoll steht immer:
Resource konnte nicht gefunden werden!
Was mache ich falsch ?
Gruß Mike
ich habe folgendes Problem und muß es bis nach Weihnachten gelöst haben:
Ich habe ein paar Dateien über .rc in die Ressourcen meiner DLL eingebunden:
<PRE>
resfils.rc
1000 FILES "test1.exe"
1001 FILES "test2.exe"
</PRE>
und kann diese aber nicht aufrufen.
Hier mein Code:
<PRE>
function InstallFileFromResource(ID: PChar; FileName: String): Boolean;
var
stFile : TFileStream;
hRes, hResFound : THandle;
P : ^Char;
N : integer;
i : integer;
begin
FillChar(buffer,MAX_PATH,#0);
// ID ist gleich '1000';
hResFound := FindResource(hInstance, ID, 'FILES');
if hResFound <> 0 then begin
hRes := LoadResource(hInstance,hResFound);
if hRes <> 0 then begin
N := SizeOfResource (HInstance,hRes) ;
P := lockresource (hRes) ;
stFile := TFileStream.Create(FileName,fmCreate);
stFile.Write(P^,N);
FreeAndNil(stFile);
UnLockResource(hRes);
FreeResource(hRes);
WinExec32AndWait(FileName);
Result := True;
end else begin
Result := False;
WriteDebugProtokoll('Resource konnte nicht geladen werden!');
end;
end else begin
Result := False;
WriteDebugProtokoll('Resource konnte nicht gefunden werden!');
end;
end;
</PRE>
In meinen Debug Protokoll steht immer:
Resource konnte nicht gefunden werden!
Was mache ich falsch ?
Gruß Mike
Comment