概述:GetPrivateprofileString的使用

GetPrivateProfileString 用法

GetPrivateProfileString是Windows API中的一个函数,它用于从注册表读取指定键值对的字符串值。

该函数的原型为

DWORD GetPrivateProfileString( 
    HKEY hKey, 
    LPCTSTR lpStringName, 
    LPCTSTR lpStringValue, 
    DWORD dwReserved, 
    LPDWORD lpdwResult 
); 

其中,hKey表示要读取的注册表键,lpStringName表示要读取的键的名称,lpStringValue表示要读取的键的值,dwReserved表示保留字段,lpdwResult表示返回结果的缓冲区。

读取注册表

调用该函数可以从注册表读取指定键值对的字符串值,例如:

HKEY hKey; 
LPCTSTR lpStringName = "MyString"; 
LPCTSTR lpStringValue = "MyValue"; 
DWORD dwReserved = 0; 
LPDWORD lpdwResult = NULL; 
 
GetPrivateProfileString(HKEY_CURRENT_USER, lpStringName, lpStringValue, 0, &dwReserved, (LPDWORD)&lpdwResult); 
if (lpdwResult != NULL) { 
    // 处理读取成功的信息 
} else { 
    // 处理读取失败的信息 
} 

在上面的例子中,我们从注册表读取了名为”MyString”的键的值,并将结果存储在lpdwResult中。如果读取成功,则lpdwResult非NULL,否则lpdwResult为NULL。

读写配置文件

读写文件测试,创建test.ini文件写入一下内容

[NETWORK]
ServerIP=127.0.0.1
LocalHost=www.baidu.com
[NETSET]
Net=443
NetHost=8080

读取配置文件

#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), "\C:\\test.ini");
	GetPrivateProfileString("NETWORK", "LocalHost", "", add, sizeof(add), "C:\\test.ini");
	GetPrivateProfileString("NETSET", "Net", "", net, sizeof(net), "C:\\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");
}

写入配置文件

运行程序后,文件内容如下所示:

[NETWORK]
ServerIP=127.0.0.1
LocalHost=www.baidu.com
[NETSET]
Net=443
NetHost=8080
[Device]
Name=PC

运行demo:

#include <iostream>
#include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用
 
using namespace std;
 
void main() {
		
	WritePrivateProfileString("Device", "Name", "PC", "C:\\test.ini");
		
	system("pause");
}