获得程序自身所在的目录

在某些情况下,应用程序在运行时需要获得当前程序自身所在目录路径,可以参考下面的代码。

void CMFCDlg::OnOK() 
{
TCHAR szBuffer[_MAX_PATH];
 ::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH);

CString Path(szBuffer);
 //去掉程序名
Path = Path.Left(Path.ReverseFind('\\'));
 AfxMessageBox(Path);
}
此外,还可以使用API函数GetCurrentDirectory来实现该功能,例如下面的代码:
void CXXDlg::OnShowPath() 
{
TCHAR path[MAX_PATH];
GetCurrentDirectory(
MAX_PATH, // size of directory buffer
path // directory buffer
);
AfxMessageBox(path);
}