使用这个函数:
CString AppPath()
{
CString sModFileName;
CString str1;
GetModuleFileName(NULL, sModFileName.GetBuffer(MAX_PATH), MAX_PATH);
sModFileName.ReleaseBuffer();
str1=sModFileName;
str1.MakeReverse();
return(sModFileName.Left(sModFileName.GetLength() - str1.Find('\\')));
}
CString AppPath()
{
CString sModFileName;
CString str1;
GetModuleFileName(NULL, sModFileName.GetBuffer(MAX_PATH), MAX_PATH);
sModFileName.ReleaseBuffer();
str1=sModFileName;
str1.MakeReverse();
return(sModFileName.Left(sModFileName.GetLength() - str1.Find('\\')));
}
::GetModuleFileName(AfxGetInstanceHandle(), sFilePathBuf, 1024);
得到的是执行文件全路径名,再分解即可。
CString GetMyDirectory()
{
TCHAR sFilename[_MAX_PATH];
TCHAR sDrive[_MAX_DRIVE];
TCHAR sDir[_MAX_DIR];
TCHAR sFname[_MAX_FNAME];
TCHAR sExt[_MAX_EXT];
GetModuleFileName(AfxGetInstanceHandle(), sFilename, _MAX_PATH);
_tsplitpath(sFilename, sDrive, sDir, sFname, sExt);CString rVal(CString(sDrive) + CString(sDir));
if (rVal.Right(1)) != _T('\\'))
rVal += _T("\\");
return rVal;
}