Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: CL | DM;

Вниз

FileMapping   Найти похожие ветки 

 
Некий_программёр   (2003-04-15 11:42) [0]

Здравствуйте! Подскажите, плз, как правильно пользоваться
функциями CreateFileMapping, MapViewOfFile и т.д. Если можно,
пример или ссылку на инфу.
Всем заранее спасибо!


 
MBo ©   (2003-04-15 11:44) [1]

Хелп не помогает?
В книге Тейксейры-Пачеко подробно расписано


 
Ihor Osov'yak ©   (2003-04-15 13:08) [2]

Для особо ленивых

{ TSharedMem }


constructor TSharedMem.Create(const Name: string; Size: Integer;
pSecurity: PSecurityAttributes = nil);
var flLock:boolean;
begin
try
FName := Name;
FSize := Size;

fAccessMutex := CreateMutex(pSecurity, False, PChar(Name+".m"));
if fAccessMutex = 0 then abort;

flLock := Lock(100);
try
{ CreateFileMapping, when called with $FFFFFFFF for the hanlde value,
creates a region of shared memory }
FHandle := CreateFileMapping($FFFFFFFF, pSecurity, PAGE_READWRITE, 0,
Size, PChar(Name));
if FHandle = 0 then abort;

FCreated := GetLastError = 0;
{ We still need to map a pointer to the handle of the shared memory region }
FFileView := MapViewOfFile(FHandle, FILE_MAP_WRITE, 0, 0, Size);
if FFileView = nil then abort;
if FCreated and flLock then FillChar(FFileView^,Size,0);
finally
if flLock then UnLock;
end;
//if FCreated then
except
Error(Format("Error creating TSharedMemory %s (%d)", [Name, GetLastError]));
end;
end;

destructor TSharedMem.Destroy;
begin
if FFileView <> nil then
UnmapViewOfFile(FFileView);
if fAccessMutex <> 0 then CloseHandle(fAccessMutex);
inherited Destroy;
end;




function TSharedMem.Lock(aTimeOut: integer):boolean;
begin
Result := WaitForSingleObject(fAccessMutex, aTimeOut) = WAIT_OBJECT_0;
end;

function TSharedMem.UnLock:boolean;
begin
Result := ReleaseMutex(fAccessMutex);
end;


Мьютекс здесь использован для синхронизации доступа между процессами к єтому общему ресурсу..



Страницы: 1 вся ветка

Текущий архив: 2003.06.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-34671
alienka
2003-05-21 10:06
2003.06.12
разный режим доступа к данным для разных полей Grid a (?)


3-34721
Darts
2003-05-23 14:54
2003.06.12
Помогите с запросом


1-34798
a72
2003-05-29 10:39
2003.06.12
Обработка событий в своем компоненте


14-34964
Vlad Oshin
2003-05-26 09:27
2003.06.12
Глупый вопрос про отладку говорящих друг с другом программ


14-34989
Skier
2003-05-26 09:48
2003.06.12
Олимпиада 2012 в Москве. За и против.