我在Resorce文件中嵌入了一個exe文件。 當我只是使用Stream.SaveToFile('test.exe');一切工作正常,生成的exe文件沒有錯誤的作品。但是當我嘗試Stream.SaveToStream(Stin); ,我收到錯誤「流寫入錯誤」。我的代碼有什麼問題?Delphi將TResourceStream寫入TStream
var
list: TStringList;
Stream: TResourceStream;
Stin, Stout: TStream;
MemStream: TMemoryStream;
begin
Stream := TResourceStream.Create(HInstance, 'phprogram' , RT_RCDATA);
try
Stin := TStream.Create;
Stout := TStream.Create;
Stream.Position := 0;
Stream.SaveToStream(Stin);
EnDecryptStream(Stin, Stout, 2913);
MemStream.LoadFromStream(Stout);
MemStream.SaveToFile('test.exe');
//Stream.SaveToFile('test.exe');
finally
Stream.Free;
end;
end;
編輯:
感謝David ...我改變了我的代碼,它工作得很好:
var
Stream: TResourceStream;
MemStream: TMemoryStream;
begin
Stream := TResourceStream.Create(HInstance, 'testres' , RT_RCDATA);
MemStream := TMemoryStream.Create;
try
EnDecryptStream(Stream, MemStream, 2913);
MemStream.SaveToFile('test.exe');
finally
MemStream.Free;
Stream.Free;
end;
end;