procedure :
procedure StringtoRes(const FileName: string; Inputstream: TMemoryStream); var hUpdate: THandle; bDiscard: BOOL; begin hUpdate := BeginUpdateResource(PChar(FileName), True); Win32Check(hUpdate <> 0); // <-- ADD THIS! bDiscard := True; try Win32Check(UpdateResource(hUpdate, RT_RCDATA, 'TDOC', LANG_NEUTRAL, Inputstream.Memory, Inputstream.Size)); bDiscard := False; finally EndUpdateResource(hUpdate, bDiscard); end; end;
procedure TForm1.Button1Click(Sender: TObject); var ResFileName: string; MemStr: TMemoryStream; RStream: TResourceStream; begin ResFileName := '.test.exe'; MemStr := TMemoryStream.Create; try MemStr.LoadFromFile('.doc.docx'); MemStr.Position := 0; StringtoRes(ResFileName, MemStr); finally MemStr.Free; end; end;