checksharemem.pas

来自「《Delphi技术手册源码》原书佩戴的光盘」· PAS 代码 · 共 42 行

PAS
42
字号
unit CheckShareMem;

// Use this unit first so all memory allocations use the shared
// memory manager. The application and all DLLs must use this unit.
// You cannot use packages because those DLLs use the default Borland
// shared memory manager.

interface

function CheckGet(Size: Integer): Pointer;
function CheckFree(P: Pointer): Integer;
function CheckRealloc(P: Pointer; Size: Integer): Pointer; 

implementation

const
  DLL = 'CheckMM.dll';

function CheckGet(Size: Integer): Pointer; external DLL;
function CheckFree(P: Pointer): Integer; external DLL;
function CheckRealloc(P: Pointer; Size: Integer): Pointer; external DLL;

procedure SetNewManager;
var
  Mgr: TMemoryManager;
begin
  Mgr.GetMem := CheckGet;
  Mgr.FreeMem := CheckFree;
  Mgr.ReallocMem := CheckRealloc;
  SetMemoryManager(Mgr);
end;

var
  OldMemoryManager: TMemoryManager;
initialization
  GetMemoryManager(OldMemoryManager);
  SetNewManager;
finalization
  SetMemoryManager(OldMemoryManager);
end.

⌨️ 快捷键说明

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