获取程序路径的方法.\\,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就是去除文件名的路径名
相关文章
相关标签/搜索