⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dllmemu.pas

📁 delphi实例大全非常经典
💻 PAS
字号:
unit DllMemU;

interface

uses
  Windows, SysUtils;

procedure SetData (I: Integer); stdcall;
function GetData: Integer; stdcall;
procedure SetShareData (I: Integer); stdcall;
function GetShareData: Integer; stdcall;

implementation

// global DLL data
var
  PlainData: Integer = 0; // not shared
  ShareData: ^Integer; // shared
  hMapFile: THandle;

const
  VirtualFileName = 'ShareDllData';
  DataSize = sizeof (Integer);

// plain (non shared) data read and write

procedure SetData (I: Integer); stdcall;
begin
  PlainData := I;
end;

function GetData: Integer; stdcall;
begin
  Result := PlainData;
end;

// shared data read and write

procedure SetShareData (I: Integer); stdcall;
begin
  ShareData^ := I;
end;

function GetShareData: Integer; stdcall;
begin
  Result := ShareData^;
end;

initialization
  //create memory mapped file
  hMapFile := CreateFileMapping ($FFFFFFFF, nil,
    Page_ReadWrite, 0, DataSize, VirtualFileName);
  if hMapFile = 0 then
    raise Exception.Create ('Error creating memory mapped file');
  // get the pointer to the actual data
  ShareData := MapViewOfFile (
    hMapFile, File_Map_Write, 0, 0, DataSize);

finalization
  UnmapViewOfFile (ShareData);
  CloseHandle (hMapFile);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -