Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-35075
CAHbKA
2003-05-25 06:44
2003.06.12
numedit


1-34858
Vulko
2003-05-30 14:56
2003.06.12
Уменьшится ли размер проги?


14-35013
АлексейК
2003-05-26 05:46
2003.06.12
Набор данных из DLL.


14-34994
Litvin
2003-05-26 11:53
2003.06.12
QRLabel


1-34793
Mik
2003-05-29 11:43
2003.06.12
Минимизация формы SDI-приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский