1. 程式人生 > >vs 獲取當前程式檔案的路徑方法

vs 獲取當前程式檔案的路徑方法

1.方法1

   char pBuf[MAX_PATH];                                               //存放路徑的變數
   GetCurrentDirectory(MAX_PATH,pBuf);                   //獲取程式的當前目錄
   strcat(pBuf,"\\");
   strcat(pBuf,AfxGetApp()->m_pszExeName);   
   strcat(pBuf,".exe");                                                       //獲取程式的全檔名

2.方法2

   //函式返回應用程式所在的路徑  

   CString    CClientApp::ReturnPath()  

   {   
   CString    sPath;   
   GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);   
   sPath.ReleaseBuffer    ();   
   int    nPos;   
   nPos=sPath.ReverseFind('\\');   
   sPath=sPath.Left(nPos);   
   return    sPath;   
   }

3.對比及建議

方法1獲取的是程式的工作路徑,如某個程式安裝在C,D盤或者其它任何,當你從[開始]-[程式]後的選單中開啟該檔案,此時獲取的是使用者工作路徑,如:C:\Documents and Settings\[計算機當前使用者名稱]\......\....
如果你想通過這個路徑來載入你放在程式目錄下的檔案,必定出錯。通常這種情況在你編譯除錯程式時是不會出錯的,你跟蹤得到的絕對路徑,但打包安裝後一定出問題。

方法2獲取的是程式的絕對路徑,用這個路徑載入同目錄下的檔案是不會有問題的。