用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就可以了
);
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就是去除文件名的路徑名