// 取得Exe所在的目录(不包含最后的"\") CString GetExePath() { char sFileName[256] = {0}; CString sPath = _T(""); GetModuleFileName(AfxGetInstanceHandle(), sFileName, 255); sPath.Format("%s", sFileName); int pos = sPath.ReverseFind('\\'); if(pos != -1) sPath = sPath.Left(pos); else sPath = _T(""); return sPath; } void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, LPCTSTR lpDefault, CString &sDest, LPCTSTR sConfigFile) // 读取字符串 { char sValue[500] = {0}; GetPrivateProfileString(lpSection, lpKey, lpDefault, sValue, 499, sConfigFile); sDest = sValue; } void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, int nDefault, UINT &nDest, LPCTSTR sConfigFile) // 读取整数 { nDest = GetPrivateProfileInt(lpSection, lpKey, nDefault, sConfigFile); } void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, int nDefault, BOOL &nDest, LPCTSTR sConfigFile) // 读取BOOL数据 { UINT nTemp; nTemp = GetPrivateProfileInt(lpSection, lpKey, nDefault, sConfigFile); nDest = nTemp != 0; }
若有需要,再添加对这几个函数的声明:
CString GetExePath(); void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, LPCTSTR lpDefault, CString &sDest, LPCTSTR sConfigFile); void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, int nDefault, UINT &nDest, LPCTSTR sConfigFile); void ReadKeyValue(LPCSTR lpSection, LPCSTR lpKey, int nDefault, BOOL &nDest, LPCTSTR sConfigFile);