獲取程序路徑的方法.\\,GetCurrentDirectory與GetModuleFileName的區別

用vc寫程序時經常要獲取程序的路徑主要有以下三種方法
1,.\\是的到應用程序的當前目錄,但當前目錄不一定等於應用程序執行文件的所在目錄,一個應用程序被啓動時,當前目錄是可以被任意設置的。
2,GetCurrentDirectory同.\\

3,GetModuleFileName()得到模塊的完整路徑名,例如,你載入c:\windows\system32\mfc.dll,得到模塊句柄h,則你可以用GetModuleFileName()得到h模塊的完整路徑名
1和2獲取的是路徑名,而3獲取的是全路徑名
 
 
GetModuleFileName函數原型
DWORD GetModuleFileName(
   HMODULE hModule,     // handle to module。將要得到的模塊的句柄。如果是當前模塊,NULL
   LPTSTR lpFilename,   // path buffer   得到的文件名。
   DWORD nSize          // size of buffer   一般MAX_PATH就可以了
);
可以通過以下方法獲取路徑名
 
char szCurPath[MAX_PATH];//定義一個字符串數據,長度爲MAX_PATH ,MAX_PATH是預定義的宏,一般是個數字常量如256
 
GetModuleFileName(NULL,szCurPath,_MAX_PATH);
 
char* p = szCurPath;
 
while(strchr(p,'\\'))
{
         p = strchr(p,'\\');
         p++;
}
 
*p = '\0';
 
CString strSwfname = szCurPath; 
szCurPath就是去除文件名的路徑名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章