Текущий архив: 2006.09.03;
Скачать: CL | DM;
Вниз
Проблемы со снятием ловушки Найти похожие ветки
← →
KygECHuK © (2006-05-12 09:52) [40]Вполне возможно, вот код библиотеки с расшареной памятью:
library mapping;
uses
ShareMem,
Windows,
typeunit;
const
cMMFileName: PChar = "SharedMapData";
var
GlobalData: pdllldata;
MapHandle: THandle;
procedure GetDLLData(var AGlobalData: pdllldata); stdcall;
begin
AGlobalData := GlobalData;
end;
procedure OpenSharedData;
var
Size: Integer;
begin
Size := SizeOf(TDLLData);
MapHandle := CreateFileMapping(DWord(-1), nil, PAGE_READWRITE, 0,size,
cMMFileName);
GlobalData := MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, size);
if GlobalData = nil then
begin
CloseHandle(MapHandle);
end;
end;
procedure CloseSharedData;
begin
if GlobalData <> nil then
UnmapViewOfFile(GlobalData);
if MapHandle <> 0 then
CloseHandle(MapHandle);
end;
procedure DLLEntryPoint(dwReason: DWord);
begin
case dwReason of
DLL_PROCESS_ATTACH: OpenSharedData;
DLL_PROCESS_DETACH: CloseSharedData;
end;
end;
exports
GetDLLData;
begin
DllProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
← →
Сергей М. © (2006-05-12 10:27) [41]1. Где и когда тобой загружается/выгружается mapping.dll ? Зачем вообще выносить работу с MMF в отдельную библ-ку, когда это можно делать непосредственно в каждой из конкретных разрабатываемых тобой хук-библиотек ?
2. Откуда в USES взялся ShareMem ?
← →
KygECHuK © (2006-05-12 11:28) [42]>> 1. Где и когда тобой загружается/выгружается mapping.dll ?
В [6] и [10] это экспортируемая функция GetDllData.
>> Зачем вообще выносить работу с MMF в отдельную библ-ку, когда это
>> можно делать непосредственно в каждой из конкретныхразрабатываемых
>> тобой хук-библиотек ?
Тоже вариант, но по каким-то причинам выбор пал именно на такой способ реализации, я уже не помню. Попробую собрать функционал в одну библиотеку, но мне кажется причина ошибок не в этом.
>> 2. Откуда в USES взялся ShareMem ?
Сам в шоке, спасибо - убрал.
Страницы: 1 2 вся ветка
Текущий архив: 2006.09.03;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.051 c