只运行一个实例以及内存泄漏检测

时间:2014-04-29 13:44:09   收藏:0   阅读:485

unit 使应用程序只运行一个实例;

interface

uses Windows;

const
  // - 互斥体唯一的名字
  _Mutex_Name = ‘{19631971-1976-1981-1989-199319941995}‘;

var
  _Mutex_Handle: THandle;

implementation

initialization // - 载入时调用的代码

// - 创建互斥体对象
_Mutex_Handle := CreateMutex(nil, False, LPCWSTR(_Mutex_Name));
// - 若互斥体对象存在则
if GetLastError = ERROR_ALREADY_EXISTS then
  // - 结束程序,可有 Integer 参数给操作系统
  Halt(ERROR_ALREADY_EXISTS);

// - 工作在调试状态时检测内存泄漏
{$WARN SYMBOL_PLATFORM OFF}
ReportMemoryLeaksOnShutdown := Boolean(DebugHook);
{$WARN SYMBOL_PLATFORM ON}

finalization // - 释放时调用的代码

// - 释放互斥体
ReleaseMutex(_Mutex_Handle);

end.

只运行一个实例以及内存泄漏检测,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!