Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1155211149
Desdechado
2006-08-10 15:59
2006.09.03
Не пятница.... но разминка для мозгов


3-1151490330
logslava
2006-06-28 14:25
2006.09.03
IntraWeb и БД


2-1155203206
Piero
2006-08-10 13:46
2006.09.03
Вопрос про TList


15-1151658614
TUser
2006-06-30 13:10
2006.09.03
Не наметить ли в Новосибирске ...


1-1153478918
REA
2006-07-21 14:48
2006.09.03
Image List Alpha Channel