davon abgesehen das
Delphi-Quellcode:
WriteToMMF(@Len, SizeOf(Len), 'InjectionMappingTest2');
procedure WriteToMMF(Filename: PChar; Data: Pointer; Len: Integer);
aus deinen obigen Postings nicht zusammenpasst (Parameter) versuche mal folgende Änderung:
Delphi-Quellcode:
procedure WriteToMMF(Filename: PChar; Data: Pointer; Len: Integer);
var
hFile: Cardinal;
Mem: Pointer;
begin
hFile := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Len +1, Filename);
if hFile <> 0 then
begin
Mem := MapViewOfFile(hFile, FILE_MAP_WRITE, 0, 0, 0);
if Mem <> nil then CopyMemory(Mem, Data, Len)
else RaiseLastWin32Error;
end else RaiseLastWin32Error;
//CloseHandle(hFile);
end;
Ach und nochwas: Wo wird hFile wieder geschlossen ? Wo wird Mem wieder mit UnmapViewOfFile() freigegeben ? Wo sind die try finally Schutzblöcke ?
Gruß Hagen