【winapi】GetPrivateProfileString 用法

概述:GetPrivateProfileString的使用

GetPrivateProfileString 用法

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

该函数的原型为

1
2
3
4
5
6
7
DWORD GetPrivateProfileString( 
HKEY hKey,
LPCTSTR lpStringName,
LPCTSTR lpStringValue,
DWORD dwReserved,
LPDWORD lpdwResult
);

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

读取注册表

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

1
2
3
4
5
6
7
8
9
10
11
12
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文件写入一下内容

1
2
3
4
5
6
[NETWORK]
ServerIP=127.0.0.1
LocalHost=www.baidu.com
[NETSET]
Net=443
NetHost=8080

读取配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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");
}

写入配置文件

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

1
2
3
4
5
6
7
8
[NETWORK]
ServerIP=127.0.0.1
LocalHost=www.baidu.com
[NETSET]
Net=443
NetHost=8080
[Device]
Name=PC

运行demo:

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <windows.h>//这个头文件一定要添加,否则GetPrivateProfileString(...)函数无法使用

using namespace std;

void main() {

WritePrivateProfileString("Device", "Name", "PC", "C:\\test.ini");

system("pause");
}

【winapi】GetPrivateProfileString 用法
https://hodlyounger.github.io/A_OS/Windows/API/【winapi】GetPrivageProfileString/
作者
mingming
发布于
2023年10月27日
许可协议