📄 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 = 0;
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 + -