VC++ 一次只能运行一个程序设置

本文介绍了一个Windows应用程序在InitInstance()函数中的初始化过程,包括使用ComCtl32.dll以启用可视化方式,通过InitCommonControlsEx()确保公共控件的正确加载,并使用互斥量防止应用程序多次启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在App文件中的InitlInstance()中增加

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

 CWinAppEx::InitInstance();

 // 只能运行一个程序,用互斥量来判断程序是否已运行
 HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName);
 if(GetLastError()==ERROR_ALREADY_EXISTS)
 {
  AfxMessageBox(_T("系统已经运行!"));//,IDCANCEL|MB_ICONEXCLAMATION,0);
  return FALSE;
 }

 

..................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值