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獲取的是程式的絕對路徑,用這個路徑載入同目錄下的檔案是不會有問題的。