GetPrivateProfileString
参考:
1. https://blog.csdn.net/tunnel115/article/details/3081340
2. https://blog.csdn.net/hopedream2008/article/details/8113798
看完以下博客的一个小例子:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "stdafx.h"
#include"afx.h"
#include"iostream"
int _tmain(int argc, _TCHAR* argv[])
{
CString strStudName;
GetPrivateProfileString(_T("StudentInfo"), _T("Name"), _T("默认姓名"), strStudName.GetBuffer(MAX_PATH), MAX_PATH, _T("D:\\aa\\ConsoleApplication4\\Debug\\student.ini"));
std::cout << strStudName << std::endl;
system("pause");
return 0;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ini 里面文件:
[StudentInfo]
Name = Aaron
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
控制台运行结果:
![](data:image/png;base64,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)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
有关GetPrivateProfileString的使用方法
======================================================
函数返回值为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文件名.
下面是一个常见的出错原因:
GetPrivateProfileString怎么总是读不出来
--------------------------------------------------------------------------------
*.INI内容
[NETWORK]
ServerIP=100.100.100.53
程序:
main()
{
char ip[16];
DWORD num=0;
num=GetPrivateProfileString("NETWORK","ServerIP,"",
ip,sizeof(ip),
"Server.ini");
cout<<num<<endl<<ip<<endl;
}
--------
num=GetPrivateProfileString("NETWORK","ServerIP,"",
ip,sizeof(ip),
"Server.ini");
Server.ini这个文件放在哪里的?要放在与应用程序相同的目录下应该用".//server.ini"
你看看是不是没有找到这个INI文件
-----------
VC中调试时,server.ini放在工程目录中;程序单独运行时,则需要放在跟exe同一个目录中。
因为从VC里启动程序,VC将程序的工作目录初始化为工程目录,而不是debug或release目录本身。
函数作用:从INI文件中读入程序中的变量.
1.所用的WINAPI函数原型为:DWORD GetPrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名.
2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.CString strStudName;
int nStudAge;
GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");
执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".
3.读入整型值要用另一个WINAPI函数:
UINT GetPrivateProfileInt(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName
);
这里的参数意义与上相同.使用方法如下:
nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");