0.环境
windows10
vs2015专业版
1.程序demo
#include "windows.h"
#include "tchar.h"
#include <iostream>
bool g_1_1Mode;
bool g_1_2Mode;
bool g_2Mode;
using namespace std;
int main()
{
g_1_1Mode = GetPrivateProfileInt(_T("1Setting"),_T("1_1Mode"),1,_T("data\\profile.ini"));
g_1_2Mode = GetPrivateProfileInt(_T("1Setting"), _T("1_2Mode"), 1, _T("data\\profile.ini"));
g_2Mode = GetPrivateProfileInt(_T("2Setting"), _T("2Mode"), 1, _T("data\\profile.ini"));
cout << "=============================ini file test begin=============================\n" << endl;
if (g_1_1Mode) {
cout <<"\t\t\t\t this is '1_1Mode'!" << endl;
}
if (g_1_2Mode) {
cout << "\t\t\t\t this is '1_2Mode'!" << endl;
}
if (g_2Mode) {
cout << "\t\t\t\t this is '2Mode'!" << endl;
}
cout << "\n=============================ini file test end===============================\n" << endl;
system("PAUSE");
return 0;
}
文件准备:
其中第一个配置1Setting中,有两个属性;第二个2Setting中,有一个属性;在ini文件中,”;“是用来注释。
运行输出结果:
2.GetPrivateProfileInt使用讲解
g_1_1Mode = GetPrivateProfileInt(_T("1Setting"),_T("1_1Mode"),1,_T("data\\profile.ini"));
参数1:是ini文件[]中的内容,即配置文件中的一种配置;
参数2:是ini文件对应配置1Setting下的1_1Mode属性,在ini文件中,赋值用等号;
参数3:是如果没有该文件或者该属性,默认值设置;
参数4:是包含1Setting设置下1_1Mode属性的,ini文件的路径,这里设置的相对路径,即当前函数所在文件路径下data目录下的profile.ini文件;
3.使用ini配置文件的优势
在实际工程中,一般会给一个可执行程序demo给别人,那么我们智能编译一次,如何配置已经在程序中写固定了,就很难修改了。这里,可以将刚刚iniDemo.cpp同目录下的data/profile.ini,整个的复制到exe可执行文件的目录下。这里来实验一下:
运行exe:
4.最终的文件结构
iniDemo
│
│ iniDemo.sln
│
├─iniDemo
│ │ iniDemo.cpp
│ │ iniDemo.vcxproj
│ │ iniDemo.vcxproj.filters
│ │
│ └─data
│ profile.ini
│
└─x64
└─Release
│ iniDemo.exe
│
└─data
profile.ini
iniDemo工程可以在iniDemo-github下载。
5.参考