c++配置文件ini---GetPrivateProfileString(...)\WritePrivateProfileString(...)


最近换了新公司,开始做程序。之前没做过c++,用c++改写了一个c的socket程序。当时遇到一个问题:程序更改,如果需求变了,程序中的一些参数需要适当修改。当时公司的大牛说:“你可以写一个配置文件,到时直接更改配置文件就ok了”。配置文件?ini?没用过。今天有时间决定学习,顺便开始记一些笔记。

网上资料很多,我水平有限,把自己一步步得到的东西写下来,一是为了自己日后看方便,二是方便读者应用。话不多说开搞。

我的实验环境是vs2013 c++。

读配.ini配置文件:

DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);

分析:

返回值 :

DWORD ---------接收缓冲区的大小(long类型)

型参:

LPCTSTR lpAppName ---------- INI文件中的一个字段名,这个字串不区分大小写。
LPCTSTR lpKeyName ---------- lpAppName 下的一个键名,也就是里面具体的变量名,这个字串不区分大小写。

LPCTSTR lpDefaut ----------------如果没有其前两个参数值,则将此值赋给变量。指定的条目没有找到时返回的默认值。可设为空("")。
LPSTR lpReturnedString -------接收INI文件中的值的CString对象,指定一个字串缓冲区,长度至少为nSize

DWORD nSize ---------------------指定装载到lpReturnedString缓冲区的最大字符数量
LPCTSTR lpFileName -----------完整的INI文件路径名

示例:

#include <iostream>
#include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用

using namespace std;

void main() {
	char ip[16];
	char add[20];
	char net[20];
	char set[20];
	
	DWORD num;//long类型,可以省略不写,如下几行。
	num = GetPrivateProfileString("NETWORK", "ServerIP", "", ip, sizeof(ip), "e:\\test.ini");
	GetPrivateProfileString("NETWORK", "LocalHost", "", add, sizeof(add), "e:\\test.ini");
	GetPrivateProfileString("NETSET", "Net", "", net, sizeof(net), "e:\\test.ini");
	GetPrivateProfileString("NETSET", "NetHost", "", set, sizeof(set), "e:\\test.ini");

	cout << num << endl;
	cout << "-----------------\n";
	
	cout << ip << endl;
	cout << add << endl;
	cout << net << endl;
	cout << set << endl;
	
	cout << "------------\n";
	
	system("pause");
}


写.ini配置文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);

示例:

#include <iostream>
#include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用

using namespace std;

void main() {
		
	WritePrivateProfileString("Device", "Name", "PC", "e:\\test2.ini");
		
	system("pause");
}



  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值