在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在应用程序经常要使用的