1 #pragma once 2 3 class OperationConfig 4 { 5 public: 6 7 OperationConfig(void); 8 ~OperationConfig(void); 9 10 //设置配置文件的值 11 BOOL SetIniFile(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPCSTR lpValue); 12 13 //获取配置文件字符串型的值 14 void GetIniFileStr(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPSTR lpRetString,DWORD dwSize,LPCSTR lpDefaultValue=""); 15 16 //获取配置文件整型的值 17 UINT GetIniFileInt(LPCTSTR lpPath,LPCSTR lpField,LPCSTR lpKey,INT nDefault=0); 18 19 20 };
1 #include "StdAfx.h" 2 #include "OperationConfig.h" 3 4 OperationConfig::OperationConfig(void) 5 { 6 } 7 8 OperationConfig::~OperationConfig(void) 9 { 10 } 11 12 /************************************************************************ 13 功能描述 :SetIniFile ,写入配置文件 14 输入参数 :LPCWSTR lpPath, 配置文件名 15 LPCWSTR lpField,字段名 16 LPCWSTR lpKey,键名 17 LPCWSTR lpValue,值 18 输出参数 :无 19 返回值 :BOOL ,是否写入成功 20 ************************************************************************/ 21 BOOL OperationConfig::SetIniFile(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPCSTR lpValue) 22 { 23 24 BOOL isSuccess=FALSE; 25 isSuccess=::WritePrivateProfileString(lpField,lpKey,lpValue,lpPath); 26 27 if (isSuccess==TRUE) 28 { 29 30 } 31 else 32 { 33 AfxMessageBox("写入配置文件失败!"); 34 } 35 return isSuccess; 36 37 } 38 39 40 41 42 /************************************************************************ 43 功能描述 :GetIniFileStr ,读取配置文件 44 输入参数 :LPCWSTR lpPath, 配置文件名 45 LPCWSTR lpField,字段名 46 LPCWSTR lpKey,键名 47 DWORD dwSize,长度 48 输出参数 :LPWSTR lpRetString,返回值 49 LPCWSTR lpDefaultValue,默认值 50 返回值 :无 51 ************************************************************************/ 52 void OperationConfig::GetIniFileStr(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,LPSTR lpRetString,DWORD dwSize,LPCSTR lpDefaultValue) 53 { 54 DWORD dwRet=::GetPrivateProfileString(lpField,lpKey,lpDefaultValue,lpRetString,dwSize,lpPath); 55 if (dwRet == 0) //返回0表示失败 56 { 57 /*AfxMessageBox(L"读取配置文件失败!");*/ 58 } 59 } 60 61 62 63 /************************************************************************ 64 功能描述 :GetIniFileInt ,读取配置文件 65 输入参数 :LPCWSTR lpPath, 配置文件名 66 LPCWSTR lpField,字段名 67 LPCWSTR lpKey,键名 68 输出参数 :INT nDefault,得到的整型值 69 返回值 :UINT,返回得到的整型值 70 ************************************************************************/ 71 UINT OperationConfig::GetIniFileInt(LPCSTR lpPath,LPCSTR lpField,LPCSTR lpKey,INT nDefault) 72 { 73 UINT nStudAge=GetPrivateProfileInt(lpField,lpKey,nDefault,lpPath); 74 //第三个参数为没找到键时返回的值。键没值则返回0 75 return nStudAge; 76 77 }
API有两种配置文件的函数。
第一种,无路径的,默认读写的配置文件路径C:\Windows\win.ini
WriteProfileString(_T("appName"), _T("KeyName"), _T("Value"));
第二种,带路径的,只比第一个多一个参数,其余都一样
WritePrivateProfileString(_T("appName"), _T("KeyName"), _T("Value"),_T("D:\\test.ini"));
配置文件读取。第四个和第五个参数应该保持一致,注意MAX_PATH,两个必须取值一样,否则可能出错
CString str;
DWORD dwLen = GetPrivateProfileString(_T("appName"), _T("KeyName"), _T("DefaultValue"),str.GetBuffer(MAX_PATH),MAX_PATH,_T("D:\\test.ini"));
str.ReleaseBuffer();