用vc寫程序時(shí)經(jīng)常要獲取程序的路徑主要有以下三種方法
1,.\\是的到應(yīng)用程序的當(dāng)前目錄,,但當(dāng)前目錄不一定等于應(yīng)用程序執(zhí)行文件的所在目錄,,一個(gè)應(yīng)用程序被啟動(dòng)時(shí),當(dāng)前目錄是可以被任意設(shè)置的,。
2,GetCurrentDirectory同.\\
3,GetModuleFileName()得到模塊的完整路徑名,,例如,你載入c:\windows\system32\mfc.dll,,得到模塊句柄h,,則你可以用GetModuleFileName()得到h模塊的完整路徑名 1和2獲取的是路徑名,而3獲取的是全路徑名
GetModuleFileName函數(shù)原型
DWORD GetModuleFileName( HMODULE hModule, // handle to module,。將要得到的模塊的句柄,。如果是當(dāng)前模塊,NULL LPTSTR lpFilename, // path buffer 得到的文件名,。 DWORD nSize // size of buffer 一般MAX_PATH就可以了 ); 可以通過(guò)以下方法獲取路徑名
char szCurPath[MAX_PATH];//定義一個(gè)字符串?dāng)?shù)據(jù),,長(zhǎng)度為MAX_PATH ,MAX_PATH是預(yù)定義的宏,一般是個(gè)數(shù)字常量如256
GetModuleFileName(NULL,szCurPath,_MAX_PATH);
char* p = szCurPath;
while(strchr(p,'\\'))
{
p = strchr(p,'\\');
p++;
}
*p = '\0';
CString strSwfname = szCurPath;
szCurPath就是去除文件名的路徑名
|
|