Добавлено: Чт, 05 Июл, 2007 12:56 Заголовок сообщения: Проецируемые в память файлы
Проецируемые в память файлы
Не менее мощным и гибким методом организации обмена данными между приложениями является метод, который базируется на проецируемых в память файлах (Files Mapping). Основывается на динамической разделяемой памяти системы для хранения в ней данных. Вот собственно и сорс для использования этого метода:
Код:
var // Глобальные переменные
hFileMapObj:THandle; // Описатель FaleMapping
lpBaseAddress:PChar; // Указатель на начальный адрес данных
При создании окна создадим FileMapping с именем FileMemory и передадим полученный в результате описатель в глобальную переменную hFileMapObj
Код:
hFileMapObj := CreateFileMapping(MAXDWORD,Nil,PAGE_READWRITE,0,4,'FileMemory');
If (hFileMapObj = 0) Then
ShowMessage('Не могу создать проецируемый файл!')
Else
// Подключим файл к адресному пространству
// и получим начальный адрес данных
lpBaseAddress := MapViewOfFile(hFileMapObj,FILE_MAP_WRITE,0,0,0);
If lpBaseAddress = Nil Then
ShowMessage('Не могу подключить проецируемый файл!');
Теперь считаем данные в дополнительную переменную (можно повесить на кнопку (TButton))
Код:
StrPCopy(lpBaseAddress,Edit1.Text);
А таймер (TTimer) заставим следить и выводить данные в Label1
Код:
Label1.Caption:=PChar(lpBaseAddress);
Ну а при выходе отключим файл от адресного пространства (Form1.OnClose)
Код:
UnMapViewOfFile(lpBaseAddress);
// Освобождаем объект файла
CloseHandle(hFileMapObj);
// Закрываем форму
Action := caFree;
+сорс в [url=http://www.onyx.uzelok.net/download/проецируемые_в_память_файлы.zip]архиве[/url] _________________ DelphiLand.net - Территория Delphi :: Исходники, компоненты, программы, статьи, журнал, форум.
Последние новости. И многое, многое другое!
CH@$ER, ты сначала почитай
Предназначена метода для обмена данными между приложениями, я же писал...Так надежнее и быстрее! _________________ DelphiLand.net - Территория Delphi :: Исходники, компоненты, программы, статьи, журнал, форум.
Последние новости. И многое, многое другое!