以下代码获取当前exe运行目录,在点击运行时正确,但是如果程序开机自动启动,那么获取的目录将是系统桌面文档目录;
TCHAR szBuf[MAX_PATH]={0};
// 注意:该函数开机启动时获取目录错误
GetCurrentDirectory(MAX_PATH, szBuf);
CString strExcutePath(szBuf);
以下函数获取exe模块绝对路径包括文件名,可以移除文件名取路径,不会出现上述错误。
TCHAR szBuf[MAX_PATH]={0};
// 注意:该函数开机启动时获取目录错误
TCHAR szBuf[MAX_PATH]={0};
// 注意:该函数开机启动时获取目录错误
//GetCurrentDirectory(MAX_PATH, szBuf);
GetModuleFileName(GetModuleHandle(NULL) , szBuf, MAX_PATH);
CString strExcutePath(szBuf);
int index = strExcutePath.ReverseFind('\\');
m_sFilePath = strExcutePath.Left(index)+"/config.ini";