现在的位置: 首页 > 综合 > 正文

GetCurrentDirectory()函数误区

2013年08月24日 ⁄ 综合 ⁄ 共 520字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.