Ĺadny brzuch
Witam. Bawiłem się z zasobami i doszedłem do wniosku, iż z pliku .RES wyciągnę plik exe i dopisze do niego 2 linijki kodu. Powstal mi taki listing:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellApi, StdCtrls; type TForm1 = class(TForm) a1: TLabel; Button1: TButton; val1: TEdit; val2: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R progz.RES} procedure TForm1.Button1Click(Sender: TObject); var res : TResourceStream; F : File; //Buffer : array[0..255] of char; buffer : string[20]; begin res := TResourceStream.Create( hInstance, 'progz', RT_RCDATA ); res.SaveToFile( 'SRExe.exe' ); res.Free; AssignFile(F, 'SRExe.exe'); try Reset(F, 1); Buffer := 'numer:='+pchar(val1.text)+';'; BlockWrite(F, Buffer, SizeOf(Buffer)); Buffer := 'prot.number:='+pchar(val2.text)+';'; BlockWrite(F, Buffer, SizeOf(Buffer)); finally CloseFile(F); end; end;
val1... -> edit1.text
val2... -> edit2.text
Kompiluje się extra...tworzy plik extra... tylko, ze jak go uruchamiam w cmd to wywala błąd:
"Program za duży do umieszczenia w pamięci". :| :-/
Prosze o pomoc...
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellApi, StdCtrls; type TForm1 = class(TForm) a1: TLabel; Button1: TButton; val1: TEdit; val2: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R progz.RES} procedure TForm1.Button1Click(Sender: TObject); var res : TResourceStream; F : File; //Buffer : array[0..255] of char; buffer : string[20]; begin res := TResourceStream.Create( hInstance, 'progz', RT_RCDATA ); res.SaveToFile( 'SRExe.exe' ); res.Free; AssignFile(F, 'SRExe.exe'); try Reset(F, 1); Buffer := 'numer:='+pchar(val1.text)+';'; BlockWrite(F, Buffer, SizeOf(Buffer)); Buffer := 'prot.number:='+pchar(val2.text)+';'; BlockWrite(F, Buffer, SizeOf(Buffer)); finally CloseFile(F); end; end;
val1... -> edit1.text
val2... -> edit2.text
Kompiluje się extra...tworzy plik extra... tylko, ze jak go uruchamiam w cmd to wywala błąd:
"Program za duży do umieszczenia w pamięci". :| :-/
Prosze o pomoc...