Главная страница
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.012 c
14-34997
kir_kul
2003-05-26 12:49
2003.06.12
Удаление двойных записей


4-35114
Василий Петрович
2003-04-12 22:48
2003.06.12
Не могу обработать нажатие по битмапине


9-34663
Ketmar
2002-12-28 21:05
2003.06.12
помогите, плиз. сильно надо...


1-34860
dany
2003-05-30 23:41
2003.06.12
StringGrid


8-34936
grei
2003-03-02 19:43
2003.06.12
Приближение картинки