windows
yu_xiyan
这个作者很懒,什么都没留下…
展开
-
CreateMutex(NULL, FALSE, strAppName); 配合GetLastError() == ERROR_ALREADY_EXISTS
正常情况下,一个进程的运行一般是不会影响到其他正在运行的进程的。但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的,而且此类程序通常也不允许运行同一个程序的多个实例。这就引出了进程互斥的问题。 实现进程互斥的核心思想比较简单:进程在启动时首先检查当前系统是否已经存在有此进程的实例,如果没有,进程将成功创建并设置标识转载 2013-12-13 10:47:37 · 2860 阅读 · 0 评论 -
关于mutex
锁住一个未被拥有的mutex,比锁住一个未被拥有的critical section 多 花费几乎100倍的时间。 因为critical section不需要进入操作系统核心,直接在user mode就可以进行操作。 mutexes可以跨进程使用。critical section只能在同一个进程中使用。 等待一个mutex时,你可以指定结束等待的时间长度,当时对于critical转载 2014-01-21 19:52:46 · 694 阅读 · 0 评论 -
采用关闭句柄的方式去掉程序多开的限制
下面的文字,主要是为了分享给和我一样的菜鸟,而且这些东西都是很多大牛的文章中的一个非常小的部分。您们直接飘过吧。 一些程序限制多开的方法很多,比如采用窗口名,进程名,内核对象等等,论坛中也有很多关于这方面的介绍,但是好像没有一个具体的例子,估计是觉得太简单了吧。我研究的这程序的限制多开的方法采用的是“内核对象信号量”。 要破解其多开也有很多方法: 1、直接转载 2014-01-23 09:19:29 · 7687 阅读 · 0 评论 -
c++简单的ATL COM开发和调用实例
1、打开VS2010,新建ATL COM 项目,步骤:“文件” --》“新建” --》“项目”,选择“Visual C++” --》“ATL 项目” ,填写“名称” FirstCOM --》“确定”。2、ATL 项目向导,勾选 【支持COM+ 1.0】和【支持部件注册器】,其他默认,点击完成。3、切换到类视图,右键单击项目“FirstCOM”--》“添加” --》“类”。转载 2014-09-30 14:10:16 · 793 阅读 · 0 评论