Главная страница
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.017 c
1-34928
McSimm2
2003-06-02 10:04
2003.06.12
---|Ветка была без названия|---


3-34666
mao
2003-05-18 07:59
2003.06.12
А всегда нужен BDE?


14-34995
Vitas2
2003-05-26 13:19
2003.06.12
SQL


3-34726
RDA
2003-05-23 15:33
2003.06.12
Подсчет итогов в зарплате


1-34864
seregey
2003-05-30 11:42
2003.06.12
Что я сломал в Дельфях?