https://blog.csdn.net/naibozhuan3744/article/details/78783446
https://blog.csdn.net/rayborn1105/article/details/8192142
https://blog.csdn.net/g5dsk/article/details/6860162
// ConsoleApplication1.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <windows.h> //using namespace std; int main() { //std::string strName, strTemp; //int nAge; //strName = "张三"; //nAge = 12; //::WritePrivateProfileString(TEXT("StudentInfo"), TEXT("Name"), TEXT("张三"), TEXT(".\student.ini")); // write WritePrivateProfileString(TEXT("LiMing"), TEXT("Sex"), TEXT("Man"), TEXT(".\student.ini"));// 路径realse WritePrivateProfileString(TEXT("LiMing"), TEXT("Age"), TEXT("20"), TEXT(".\student.ini")); WritePrivateProfileString(TEXT("Fangfang"), TEXT("Sex"), TEXT("Woman"), TEXT(".\student.ini")); WritePrivateProfileString(TEXT("Fangfang"), TEXT("Age"), TEXT("21"), TEXT(".\student.ini")); // read LPTSTR LiMingSex = new TCHAR[6] ; int LiMingAge = 0; LPTSTR FangfangSex = new TCHAR[6];; int FangfangAge = 0; GetPrivateProfileString(TEXT("LiMing"), TEXT("Sex"), TEXT(""), LiMingSex, 6 ,TEXT(".\student.ini")); LiMingAge = GetPrivateProfileInt(TEXT("LiMing"), TEXT("Age"), 0, TEXT(".\student.ini")); char LM[6] = {0}; strncpy_s(LM, (char *)LiMingSex,3); system("pause"); return 0; }
[Section1] Key11=value11 Key12=value12 [Section2] Key21=value21 Key22=value22 ... [SectionN] KeyN1=valueN1 KeyN2=valueN2
(1)操作系统配置文件Win.ini的函数:
函数名 |
功能 |
GetProfileSection |
读取win.ini中指定节lpAppName中所有键名及其值。lpReturnedString字符串形式如下: Key1=Value1/0Key2=Value2/0…KeyN=ValueN/0/0 |
GetProfileString |
读取win.ini中指定节lpAppName中键名为lpKeyName对应变量的字符串值。 |
GetProfileInt |
读取win.ini中指定节lpAppName中键名为lpKeyName对应变量的整数值。 |
WriteProfileSection |
写(替换)win.ini中指定节lpAppName中的键值。 lpString字符串形式同GetProfileSection中的lpReturnedString。 |
WriteProfileString |
写(替换)win.ini中指定节lpAppName中键名为lpKeyName对应变量的字符串值。 |
(2)操作用户自定义配置文件(PrivateProfile.ini)的函数:
函数名 |
功能 |
GetPrivateProfileSectionNames |
读取lpFileName指定的配置文件中所有的节名。lpszReturnBuffer字符串形式如下: Section1/0Section2/0…SectionN/0/0 |
GetPrivateProfileSection |
同GetProfileSection。 |
GetPrivateProfileString |
同GetProfileString。 |
GetPrivateProfileInt |
同GetProfileInt |
GetPrivateProfileStruct |
须同WritePrivateProfileStruct配套使用。 |
WritePrivateProfileSection |
同WriteProfileSection |
WritePrivateProfileString |
同WriteProfileString |
WritePrivateProfileStruct |
不常用。 |
用MFC配置ini文件的核心函数有三个,分别为WritePrivateProfileString和GetPrivateProfileString和GetPrivateProfileInt。下面分别讲解这三个核心函数的功能和各个参数的意义。
WritePrivateProfileString函数
BOOL WritePrivateProfileString( LPCTSTRlpAppName, LPCTSTRlpKeyName, LPCTSTRlpString, LPCTSTRlpFileName ); //其中各参数的意义: LPCTSTR lpAppName; //是INI文件中的一个字段名. LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名. LPCTSTR lpString; //是键值, 也就是变量的值,不过必须为LPCTSTR型或CString型的. LPCTSTR lpFileName;//是完整的INI文件名.
WritePrivateProfileString("StudentInfo1","身份证","44022520070001",".\ConfigFile\ConfigInit.ini");
[StudentInfo] Name = 李四 Age = 18 身份证 = 44022520070309 [StudentInfo1] Name = 李四 Age = 18 身份证 = 44022520070309
GetPrivateProfileString函数
DWORD GetPrivateProfileString( LPCTSTRlpAppName, LPCTSTRlpKeyName, LPCTSTRlpDefault, LPTSTRlpReturnedString, DWORDnSize, LPCTSTRlpFileName ); //其中各参数的意义: //前二个参数与 WritePrivateProfileString中的意义一样. lpAppName; //是INI文件中的一个字段名. lpKeyName;// 是lpAppName下的一个键名,通俗讲就是变量名. lpDefault;// : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量. lpReturnedString;// : 接收INI文件中的值的CString对象,即目的缓存器. nSize;// : 目的缓存器的大小. lpFileName;// : 是完整的INI文件名.
GetPrivateProfileInt函数
UINT GetPrivateProfileInt( LPCTSTRlpAppName, LPCTSTRlpKeyName, INTnDefault, LPCTSTRlpFileName );//其中各参数的意义: //前二个参数与 WritePrivateProfileString中的意义一样. LPCTSTR lpAppName; //是INI文件中的一个字段名. LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名. INT nDefault; //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量. LPCTSTR lpFileName;//是完整的INI文件名.
调用 GetPrivateProfileInt("StudentInfo2","Age", 1,".\ConfigFile\ConfigInit.ini");
#include <Windows.h> #include <tchar.h> #include <strsafe.h> #pragma comment(lib, "strsafe.lib") #define INI_FILE_NAME _T("ini_test.ini") TCHAR gIniFileFullPath[MAX_PATH] = {_T('