CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

谁能给看看这段代码是什么意思?简直不知所云,还敢共享!!!

楼主dxj2000yt(桃李者)2004-08-03 10:55:27 在 VC/MFC / 基础类 提问

 
  void   CServerDlg::IfClone()  
  {  
  HANDLE   hmemshare;  
  hmemshare   =CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MEMSHARE");  
  if(hmemshare==NULL)  
  {  
  TRACE("\n   failed   to   CreateFileMapping!   ");  
  return;  
  }  
      char   *   szSingle;     //   dxj   =new   char[512];                               //dxj   ---                                             //where     to     delete   ?  
  szSingle=(char   *)MapViewOfFile(hmemshare,FILE_MAP_ALL_ACCESS,0,0,0);  
  if(szSingle==NULL)  
  {  
  TRACE("\n   failed   to   MapViewOfFile()   ");  
  return;  
  }  
   
  CString   strSingleCopy=CString(szSingle);  
  int   nIndex=strSingleCopy.Find(_TEXT(".EXE"));    
  if(nIndex!=-1)  
  {  
  CString   szPathOrig=strSingleCopy.Left(nIndex+3+1);      
          szSingle+=(nIndex+3+1);  
  //AfxMessageBox(szSingle);  
                  HANDLE   hProcessOrig=(HANDLE)atoi(szSingle);  
  szSingle-=(nIndex+3+1);  
                  char     *   mayend="MAYEND";  
  strcpy(szSingle,mayend);  
  szSingle[6]=NULL;  
  WaitForSingleObject(hProcessOrig,INFINITE);  
  CloseHandle(hProcessOrig);  
            DeleteFile(szPathOrig);  
                  UnmapViewOfFile(szSingle);  
                  CDialog::OnOK();  
  }  
  } 问题点数:50、回复次数:5Top

1 楼huaboy408(Thinking...)回复于 2004-08-03 11:15:12 得分 0

好像是刻录方面的  
   
  没有研究Top

2 楼lizmei001(暗黑)回复于 2004-08-03 11:18:55 得分 0

只知道建立了个内存映谢文件  
  szSingle+=(nIndex+3+1);     不懂  
  HANDLE   hProcessOrig=(HANDLE)atoi(szSingle);   不懂  
   
  upTop

3 楼dxj2000yt(桃李者)回复于 2004-08-03 11:22:49 得分 0

算了,我跟踪了一下,这段代码根本就步发挥作用。作者可能忘了删掉。--垃圾代码Top

4 楼sjzxyg(小小鸟)回复于 2004-08-03 11:23:10 得分 0

把进程共享内存写的这么烂,第一次见到  
  而且如果在共享区中查找不到.EXE,竟然连句柄都没有关闭,呵呵Top

5 楼skyonline(山中过客)回复于 2004-08-03 12:06:46 得分 50

//////////////这一段传见共享内存////////////////////////////////  
  HANDLE   hmemshare;  
  hmemshare   =CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,"MEMSHARE");  
  if(hmemshare==NULL)  
  {  
  TRACE("\n   failed   to   CreateFileMapping!   ");  
  return;  
  }  
      char   *   szSingle;     //   dxj   =new   char[512];                               //dxj   ---                                             //where     to     delete   ?  
  szSingle=(char   *)MapViewOfFile(hmemshare,FILE_MAP_ALL_ACCESS,0,0,0);  
  if(szSingle==NULL)  
  {  
  TRACE("\n   failed   to   MapViewOfFile()   ");  
  return;  
  }  
   
  //////////////////////////找到特定的文件,把它写到共享内存中///////////  
   
   
  CString   strSingleCopy=CString(szSingle);  
  int   nIndex=strSingleCopy.Find(_TEXT(".EXE"));    
  if(nIndex!=-1)  
  {  
  CString   szPathOrig=strSingleCopy.Left(nIndex+3+1);      
          szSingle+=(nIndex+3+1);  
  //AfxMessageBox(szSingle);  
                  HANDLE   hProcessOrig=(HANDLE)atoi(szSingle);  
  szSingle-=(nIndex+3+1);  
                  char     *   mayend="MAYEND";  
  strcpy(szSingle,mayend);  
  szSingle[6]=NULL;  
  WaitForSingleObject(hProcessOrig,INFINITE);  
  CloseHandle(hProcessOrig);  
            DeleteFile(szPathOrig);  
                  UnmapViewOfFile(szSingle);  
                  CDialog::OnOK();  
  }  
  Top

相关问题

  • 不知所云
  • 共享ms-dos6.0,win2k,nt4的源代码
  • 共享ms-dos6.0,win2k,nt4的源代码
  • 这段代码啥意思?
  • 这段代码有意思!
  • 这代码什么意思?
  • 这段代码啥意思?
  • ███代码共享,共同学习████
  • 代码共享,结束外部进程
  • 请看下面代码什么意思?

关键词

  • 代码
  • 内存
  • null
  • szsingle
  • hmemshare
  • strsinglecopy
  • nindex+3+1
  • hprocessorig
  • dxj
  • 共享

得分解答快速导航

  • 帖主:dxj2000yt
  • skyonline

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo