使用API函数操作ini配置文件

本文介绍如何使用Windows API函数WritePrivateProfileString、GetPrivateProfileString和GetPrivateProfileInt来实现INI文件的读写操作,并提供了一个具体的编程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INI文件是Windows系统中一类比较重要的文件,可以使用一些API函数直接对INI文件进行读写操作。

主要用三个函数就可以实现简单的INI文件读写功能,这三个函数是:

1)WritePrivateProfileString:可以在文件中添加字段,可以添加String也可以添加Int,返回值表示写入是否成功,函数原型为:

 BOOL WritePrivateProfileString(
 	LPCWTSTR lpAppName, 	// 指向指定字段的字符串
 	LPCWTSTR lpKeyName, 	// 指向指定键的字符串
 	LPCWTSTR lpString,		// 指向指定值的字符串
 	LPCWTSTR lpFileName 	// 指向文件名称字符串
 );


2)GetPrivateProfileString:从文件中读取String类型的数据,返回值表示读出的字符串的长度,函数原型为:

 DWORD GetPrivateProfileString(
 	LPCWTSTR lpAppName, 	//指向指定字段的字符串
 	LPCWTSTR lpKeyName, 	//指向键的字符串
 	LPCWTSTR lpDefault, 	//如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量
	LPWTSTR lpReturnedString, 	//存放INI文件中值的目的缓存区
 	DWORD nSize, 		//目的缓冲区的大小,以字节为单位
	LPCWTSTR lpFileName 	//指向INI文件名称的字符串
 ); 

3)GetPrivateProfileInt:从文件中读取Int类型的数据,返回值就是要读取的参数,函数原型为:

 UINT GetPrivateProfileInt(
 	LPCWTSTR lpAppName, 	//指向指定字段的字符串
 	LPCWTSTR lpKeyName, 	//指向键的字符串
 	INT nDefault, 		//如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量
 	LPCWTSTR lpFileName 	//指向INI文件名称的字符串
 );

 

实例:

下边的例子使用这三个函数进行文件操作。得到的结果为:在appname.ini文件中写入如下数据,

[String]
FirstString=It all worked out okay.
[Int]
FirstInt=123

程序如下:

#include<iostream>
using namespace std;
#include <windows.h>

 int main(int argc, char* argv[]) 
{
	LPWSTR inBuf = new WCHAR[200];;
	int testInt1 = 0;
	int testInt2 = 0;

	//向INI文件中添加一些键值 
	WritePrivateProfileString (_T("String"), _T("FirstString"), _T("It all worked out okay."), _T(".\\appname.ini")); 
	WritePrivateProfileString (_T("Int"), _T("FirstInt"), _T("123"), _T(".\\appname.ini")); 

	//测试一下添加的正确性
	GetPrivateProfileString (_T("String"), _T("FirstString"), _T("Bogus Value: Get didn't work"), inBuf, 80, _T(".\\appname.ini")); 
	testInt1 = GetPrivateProfileInt(_T("Int"),_T("FirstInt"),2,_T(".\\appname.ini"));
	testInt2 = GetPrivateProfileInt(_T("Int"),_T("SecondInt"),2,_T(".\\appname.ini"));
	wcout<<inBuf<<endl;
	cout<<testInt1<<endl;
	cout<<testInt2<<endl;
	return 0; 
}




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值