MFC 程序怎么限制多开

编程入门 行业动态 更新时间:2024-10-09 08:36:14

MFC <a href=https://www.elefans.com/category/jswz/34/1771429.html style=程序怎么限制多开"/>

MFC 程序怎么限制多开

      限制MFC程序多开的方法很多,例如,信号量,事件,互斥等。下面使用的是互斥体Mutex。

      1、原理

       创建一个互斥体,并检查它是否已经有拥有者,如果有,表明互斥体已经建立(程序已经启动),否则表明程序未启动。

       2、实现

     (1)首先创建一个互斥体,CreateMutex函数,第一个参数可以设置为NULL,第二个参数必须设置为false,第三个参数表示互斥体的名称,这个名称最好有一些特殊标识以防止与其他应用程序冲突,比如程序名+时间。

     (2)使用GetLastError()函数判断错误信息是否为ERROR_ALREADY_EXISTS,如果是,则表示程序已经启动。

        具体代码如下:

BOOL COneexeApp::InitInstance()
{HANDLE hObject = ::CreateMutex(NULL,FALSE, _T("fuckmfc6666"));  if(GetLastError() == ERROR_ALREADY_EXISTS)  {  return FALSE;  }  // 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,//则需要 InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);// 将它设置为包括所有要在应用程序中使用的// 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp::InitInstance();................
}

             注意:限制多开的代码必须写在InitInstance()的最前面。

  

更多推荐

MFC 程序怎么限制多开

本文发布于:2024-02-11 07:04:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679747.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程序   MFC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!