1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| type
TInfo = record
test: array of Char;
end;
var
Form1: TForm1;
Info: TInfo;
implementation
{$R *.dfm}
Procedure WriteResData(ServerFile: String; Buffer: Pointer; Size: Integer; ResourceName: String);
Var
ResourceHandle :THandle;
WideServerFile :PWideChar;
WideResourceName :PWideChar;
Begin
GetMem(WideServerFile, (Length(ServerFile) + 1) * 2);
GetMem(WideResourceName, (Length(ResourceName) + 1) * 2);
Try
StringToWideChar(ServerFile, WideServerFile, Length(ServerFile) * 2);
StringToWideChar(ResourceName, WideResourceName, Length(ResourceName) * 2);
ResourceHandle := BeginUpdateResourceW(WideServerFile, False);
UpdateResourceW(ResourceHandle, MakeIntResourceW(10), WideResourceName, 0, Buffer, Size);
EndUpdateResourceW(ResourceHandle, False);
Except
FreeMem(WideServerFile);
FreeMem(WideResourceName);
End;
End;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
SetLength(Info.test, 5);
for i := 0 to 4 do
begin
Info.test[i] := 'a';
end;
WriteResData('C:\Calc.exe', @Info, SizeOf(Info), 'NomRessource');
end; |
Partager