?? sharedata.~pas
字號:
unit ShareData;
interface
uses windows,Common;
type
PGlobalDllData = ^TGlobalDllData;
TGlobalDllData = record
CfgFileName : String[255];
end;
procedure CreateShareData;
procedure OpenShareData;
procedure CloseShareData;
function GetShareData : PGlobalDllData;
implementation
var
GlobalData: PGlobalDllData = nil; //這是一個全局變量,指向創建的內存映射文件。
MapHandle: THandle;
procedure CreateShareData;
var
size: integer;
begin
size := sizeof(TGlobalDllData);
mapHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, size, DllShare);
if mapHandle = 0 then Exit;
GlobalData := MapViewOfFile(mapHandle, File_map_all_Access, 0, 0, size);
if GlobalData = nil then
begin
CloseHandle(MapHandle);
//RaiseLastWin32Error;
end;
end;
procedure OpenShareData;
var
size: integer;
begin
size := sizeof(TGlobalDllData);
mapHandle := OpenFileMapping(FILE_MAP_ALL_ACCESS, False, DllShare);
if mapHandle = 0 then Exit;
GlobalData := MapViewOfFile(mapHandle, File_map_all_Access, 0, 0, size);
if GlobalData = nil then
begin
CloseHandle(MapHandle);
//RaiseLastWin32Error;
end;
end;
function GetShareData : PGlobalDllData;
begin
if not Assigned(GlobalData) then
Result := nil
else
Result := GlobalData;
end;
procedure CloseShareData;
begin
if Assigned(GlobalData) then begin
UnMapViewOfFile(GlobalData);
CloseHandle(MapHandle);
MapHandle := 0;
end;
if MapHandle <> 0 then
CloseHandle(MapHandle);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -