概述: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");
}