ihr das mit dem absolute ist ja mal hässlich gelöst ;P
Delphi-Quellcode:
program Project1;
uses windows;
const
HelloWorld = 'Hello, World!';
var
ModuleHandle: HMODULE;
OldProtect: DWORD;
begin
ModuleHandle := GetModuleHandle(nil);
if not VirtualProtect(pointer(ModuleHandle), (Length(HelloWorld) + 1) * SizeOf(Char),
PAGE_READWRITE, OldProtect) then
Exit;
lstrcpy(pointer(ModuleHandle), HelloWorld);
VirtualProtect(pointer(ModuleHandle), (Length(HelloWorld) + 1) * SizeOf(Char),
OldProtect, OldProtect);
MessageBox(HWND(nil), pointer(ModuleHandle), 'foo', MB_OK or MB_ICONINFORMATION);
end.
man sollte das schon besser so durch typecasting lösen
absolut sagt aus das der gleiche sepicher benutzt wird
->
Delphi-Quellcode:
var bla: pointer;
blub: integer absolute bla;
dann zeigen bla und blub auf gleiche adresse
Delphi-Quellcode:
var bla: pointer;
begin
integer(bla) //<- würde das selbe sein wie blub
end;