MFC获取当前工作路径和可执行文件路径

[cpp]  view plain  copy
  1. 1. 获取Debug或Release所在的路径  
  2. CString GetModuleDir()   
  3. {   
  4.  HMODULE module = GetModuleHandle(0);   
  5.  char pFileName[MAX_PATH];   
  6.  GetModuleFileName(module, pFileName, MAX_PATH);   
  7.    
  8.  CString csFullPath(pFileName);   
  9.  int nPos = csFullPath.ReverseFind( _T('\\') );   
  10.  if( nPos < 0 )   
  11.   return CString("");   
  12.  else   
  13.   return csFullPath.Left( nPos );   
  14. }  
  15.   
  16.    
  17.   
  18. 2. 获取当前工作路径(dsp所在路径)  
  19.   
  20. //获取工作路径  
  21. CString GetWorkDir()   
  22. {    
  23.  char pFileName[MAX_PATH];   
  24.  int nPos = GetCurrentDirectory( MAX_PATH, pFileName);   
  25.    
  26.  CString csFullPath(pFileName);    
  27.  if( nPos < 0 )   
  28.   return CString("");   
  29.  else   
  30.   return csFullPath;   
  31. }  


路径分解函数:

[cpp]  view plain  copy
  1. char   a_sFileName[256];     
  2.     GetModuleFileName(NULL,a_sFileName,256);   
  3. CString sPath;  
  4.   
  5.     CString sDrive;//磁盘名  
  6.     CString sDir;//文件路径  
  7.     CString sFileName;//取出文件路径后的文件名  
  8.     CString sExt;//文件扩展名  
  9.   
  10.     char drive[_MAX_DRIVE];//磁盘名  
  11.     char dir[_MAX_DIR];//路径名  
  12.     char fname[_MAX_FNAME];//文件名  
  13.     char ext[_MAX_EXT];//扩展名  
  14.   
  15.     _splitpath(a_sFileName, drive, dir, fname, ext );  
  16.   
  17.     sDrive.Format("%s",drive);  
  18.     sDir.Format("%s",dir);  
  19.     sFileName.Format("%s",fname);  
  20.     sExt.Format("%s",ext);  
  21.   
  22.     sPath= sDrive + sDir + sFileName + a_sSuffix + sExt;  

CString strText;TCHAR exepath[MAX_PATH]={0};::GetModuleFileName(NULL,exepath,MAX_PATH);strText=exepath;strText=strText.Left(strText.ReverseFind(''''));strText += _T("");----------------------代码段结束-------------------------------GetModuleFileName是一个API函数,通过这个函数,可以获得运行的当前程序的EXE文件所在的路径。直接将这几句代码,在MFC中封装成一个函数即可。GetModuleFileName第一个参数是示例句柄,设为NULL则表示当前执行的EXE的。第二个参数就是接受得到的可执行路径的字符串缓冲。第三个是缓冲的大小。大小就是声明的缓冲的大小,以TCHAR为单位。strText.Left()是CString提供的字符串截取函数,具体的可以查看MSDN或者本站其他相关文章。ReverseFind()是CString提供的字符串查找函数,具体的可以查看MSDN或者本站其他相关文章。


转载地址:http://blog.csdn.net/xjujun/article/details/8054990

你可能感兴趣的:(Windows编程)