当前路径与应用程序所在的路径有可能是不同的,特别是在使用CFileDialog(或之类东西的时候)有可能将当前路径改为与应用程序所在路径不同的其他地方。以下就是获取应用程序所在路径的方法(我放在CMainFrame中实现):
CString CMainFrame::GetAppPath()
{
char errbuf[256],exepath[256],*pStr;
//初始化模块名
if(GetModuleFileName(NULL,exepath,256)<=0)
{
sprintf(errbuf,"GetModuleFileName fail.");
return -1;
}
// 这里exepath里就是当前程序可执行文件的全路径
//(包括文件名,如:c:winnt otepad.exe)
pStr = strrchr(exepath,'/');
if (pStr != NULL) *pStr =0x00;
strcat(exepath,"/");
// 这里exepath里就是当前程序可执行文件的路径
//(不包括文件名,如:c:winnt)
CString str(exepath);
return str;
}
{
char errbuf[256],exepath[256],*pStr;
//初始化模块名
if(GetModuleFileName(NULL,exepath,256)<=0)
{
sprintf(errbuf,"GetModuleFileName fail.");
return -1;
}
// 这里exepath里就是当前程序可执行文件的全路径
//(包括文件名,如:c:winnt otepad.exe)
pStr = strrchr(exepath,'/');
if (pStr != NULL) *pStr =0x00;
strcat(exepath,"/");
// 这里exepath里就是当前程序可执行文件的路径
//(不包括文件名,如:c:winnt)
CString str(exepath);
return str;
}