Server.ini
[NETWORK]
ServerIP=100.100.100.53
port=3306
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
char ip[16];
DWORD num=0,port=0;
num = GetPrivateProfileString("NETWORK","ServerIP",NULL,ip,sizeof(ip), "e://program//makeini//Server.ini");
cout<<num<<endl<<ip<<endl;
port= GetPrivateProfileInt("NETWORK","port",NULL,"e://program//makeini//Server.ini");
cout<<port<<endl;
return 0;
}
编译时提示错误如下:
error C2664: ‘GetPrivateProfileString’ : cannot convert parameter 1 from ‘const char [8]‘ to ‘LPCWSTR’
解决方法:
如果你不希望程序支持Unicode字符集,则不用改动程序。更改项目设置就可以了。
项目菜单–项目属性(最后一个)–配置属性–常规–项目默认值–字符集,(Project-> Properties-> Configurations Properties-> General-> Project Defaults-> Charater Set)将使用Unicode字符集改为未设置即可。
打印:
14
100.100.100.53
3306
函数返回值为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, //配置文件的section名
LPCTSTR lpKeyName, //配置文件的key名
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名
DWORD GetPrivateProfileInt(
LPCTSTR lpAppName, //配置文件的section名
LPCTSTR lpKeyName, //配置文件的key名
LPCTSTR lpDefault,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名