在EVC下没有GetCurrentDirectory()这个函数能方便地获取当前工作路径,所以我们只能通过GetModuleFileName()函数的返回值来获取当前的工作路径.//szPath:获取的当前工作路径void GetCurrentDirectory(CString &szPath){ wchar_t pBuf[256]; GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t)); szPath=pBuf; szPath = szPath.Left(szPath.ReverseFind('//')+1);}
或者:
CString path; GetModuleFileName(NULL,path.GetBufferSetLength(MAX_PATH+1),MAX_PATH); path.ReleaseBuffer(); int pos = path.ReverseFind('//'); path = path.Left(pos);
但是如下在win32应用程序下就应该是这样的:
//获取应用程序目录CString CProfile::GetAppFileName(void){ TCHAR Path[MAX_PATH]; ::GetModuleFileName(NULL, Path, MAX_PATH); CString StrPath;//StrPath(Path); StrPath.Format(L"%s", Path); int pos = StrPath.ReverseFind('//'); StrPath = StrPath.Left(pos);//去掉应用程序名称 return StrPath;}
这个API在应用程序经常要使用的