用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就是去除文件名的路径名