Windows_通过共享数据段(data_seg())实现应用程序只能被创建一次
2015-09-10 09:32
381 查看
通过data_seg()编译指令共享数据段实现程序不能多开:
如果不用cin进行阻塞,则程序会退出(达不到效果)
没有用cin阻塞的代码:
没用用cin阻塞的效果:进程名为Share_Information:
可以看出进程已经被杀死:
用cin阻塞的代码:
示例代码:
用cin阻塞开多个程序的效果:
如果不用cin进行阻塞,则程序会退出(达不到效果)
没有用cin阻塞的代码:
#include <iostream> #include <Windows.h> #include <tchar.h> //#include "Share.h" using namespace std; #pragma data_seg("flag_data") int app_count = 0; #pragma data_seg() #pragma comment(linker,"/SECTION:flag_data,RWS") int main(){ ++app_count; if (app_count > 1) { MessageBox(NULL, _T("More than one"), _T("Haha"), 0); } //int a; //cin >> a; return 0; }
没用用cin阻塞的效果:进程名为Share_Information:
可以看出进程已经被杀死:
用cin阻塞的代码:
示例代码:
#include <iostream> #include <Windows.h> #include <tchar.h> //#include "Share.h" using namespace std; #pragma data_seg("flag_data") int app_count = 0; #pragma data_seg() #pragma comment(linker,"/SECTION:flag_data,RWS") int main(){ ++app_count; if (app_count > 1) { MessageBox(NULL, _T("More than one"), _T("Haha"), 0); } int a; cin >> a; return 0; }
用cin阻塞开多个程序的效果:
相关文章推荐
- 白盒测试
- jQuery整理笔记9----函数形式发展
- IOS项目目录结构
- 解决Struts2报错!!Unable to load configuration struts2-core-2.2.3.jar!/struts-default.xml:29:72报错
- WARNING: No units on 'cache_mem 536870912', assuming 536870912.00 bytes
- 安装vs2010
- Java中一些关键字的使用技巧总结
- NPOI导出Excel(多表头,多工作薄)
- 优先队列 POJ2010
- 在 Linux 中使用日志来排错
- static关键字
- 工作中遇到的问题--Hibernate注解添加在一方和多方的区别
- MySQL数据库恢复(使用mysqlbinlog命令)
- irq 的一点分析
- jQuery模仿的QQ投票效果
- 终于找到Ionic+angularJS的源文件了, 发布版本: v1.1.0 "xenon-xerus"
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
- Console命令详解,让调试js代码变得更简单
- Mysql 慢查询日志
- Git基本常用命令如下