概述: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> using namespace std; void main() { char ip[16]; char add[20]; char net[20]; char set[20]; DWORD num; 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> using namespace std; void main() { WritePrivateProfileString("Device", "Name", "PC", "C:\\test.ini"); system("pause"); }
|