程序怎么获取启动的是本程序的第n个例子
程序如何获取启动的是本程序的第n个例子
一个test.exe,根据需要可能要启动2-4个实例,同时运行。
为了把不同的实例绑定到不同的core中,代码中需要获取启动的是本程序的第n个例子。
谢谢!
------解决方案--------------------
怎么感觉你的问题和我的问题很像,我已经解决了。可以执行时带上参数啊,如test.exe -1来执行第1个例子,test.exe -2来执行第2个例子。
参见我的帖子:http://topic.****.net/u/20120918/09/53847714-fb61-42b8-abc4-0c46120f4b99.html
------解决方案--------------------
vc 内存映射文件---《WINDOWS核心编程》17章
代码
创建工程test
一个test.exe,根据需要可能要启动2-4个实例,同时运行。
为了把不同的实例绑定到不同的core中,代码中需要获取启动的是本程序的第n个例子。
谢谢!
------解决方案--------------------
怎么感觉你的问题和我的问题很像,我已经解决了。可以执行时带上参数啊,如test.exe -1来执行第1个例子,test.exe -2来执行第2个例子。
参见我的帖子:http://topic.****.net/u/20120918/09/53847714-fb61-42b8-abc4-0c46120f4b99.html
------解决方案--------------------
vc 内存映射文件---《WINDOWS核心编程》17章
代码
创建工程test
- C/C++ code
//test.cpp #pragma data_seg("Shared") //都是编译选项 volatile LONG g_lApplicationInstances = 0;//大概意思是更改本exe文件结构,添加1个节(术语) #pragma data_seg() //此节的内容是共享的,本例共享的变量为g_lApplicationInstances #pragma comment(linker, "/Section:Shared,RWS") CtestApp::CtestApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 g_lApplicationInstances++; } CtestApp::~CtestApp() { g_lApplicationInstances--; } BOOL CtestApp::InitInstance() { //... CString strMsg; strMsg.Format(L"%d", g_lApplicationInstances); AfxMessageBox(strMsg); //.. }
------解决方案--------------------
就是楼上的共享段方式可以解决了
------解决方案--------------------
2楼方法确实简单
俺以前用过2种
1.INI,这种程序如果崩溃掉就乱了
2.后来俺就扫描进程列表,判断是第几个了