WEB开发网
开发学院软件开发VC VC++中用内存映射文件&用CfileFind递归搜索目... 阅读

VC++中用内存映射文件&用CfileFind递归搜索目录

 2008-11-13 19:32:48 来源:WEB开发网   
核心提示: 在Visualc++6.0中我们用默认方式生成基于对话框的应用程序,在程序的初始化阶段,VC++中用内存映射文件&用CfileFind递归搜索目录(2),在CwinApp生类的Initln_stance函数的开始处,添加以下代码:(//创建内存映射文件对象,说明这是第一个运行的互斥

在Visualc++6.0中我们用默认方式生成基于对话框的应用程序,在程序的初始化阶段,在CwinApp生类的Initln_stance函数的开始处,添加以下代码:

(//创建内存映射文件对象,mu_texRunning是其名字,所有需要互斥运行//的程序都使用这个名字(这些代码对于需要互斥运行的程序是通用的)HANDLEhMap=CreateFileMapping((HANDLE)0Xffffffffnull,PAGE_READWRLTE,0,128,"Mu_texRunning")if(hMap==NULL)//如果创建失败(AfxMessageBox("创建用于互斥运行的内存映文件对象失败!”,MB?OKMICLNSTOP);

returnFALSE;//退出此程序)

//如果已经存在这个同名对象,说明已有需要互斥的其他程序运行了

elseif(GetLastError()==ER_ROR_ALREADY_EXISTS)

(LPVOIDipMen=MapViewOFFile(hMap,FILE_MAP_WRITE,0,0,0);

Cstringstr=(char*)ipMem;//获得已在运行的程序的描述信息

UnmapViewofFile(lpMem);//解除映射图

CloseHandle(hMap);//关闭此对象

AfxMessageBox(str,MB_okMB_ICONSTOP);显示有关的描述信息

ReturnFALSE;//退出此程序)

Else//经过上面的检查,说明这是第一个运行的互斥程序

(LPVOIDip_mem=MapViewofFile(hMap,FILE_MAP_WRITE,0,0,0);

//这里可写入该程序运行的描述信息,上面的错误提示就是这信信息

strcpy((char*)lpMem,"xxx程序正在运行!”);

UnmapViewofFile(lpMem);//解除映射图)

//下面可以继续执行函数INITIN?STANCE原有的代码了

AfxEnableControl_comtainer();

//当程序运行结束了,要记住调用CHANDIE(HMAP)关闭这个对象句柄,//这里可以在Initinstance函数最后returnFALSE之前调用

上一页  1 2 3 4  下一页

Tags:VC 中用 内存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接