以下代码获取当前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";