Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.52 MB
Время: 0.027 c
2-1155671663
Vovan#1
2006-08-15 23:54
2006.09.03
Отобразить TList в TListView с обратной связью


15-1154986259
matt
2006-08-08 01:30
2006.09.03
Вэб камеры онлайн


1-1153655572
P_Alex
2006-07-23 15:52
2006.09.03
XLReport 4


9-1134035185
kblc
2005-12-08 12:46
2006.09.03
BlackJack


2-1155203930
evgenij_
2006-08-10 13:58
2006.09.03
Потоки




   Наверх