一、目的:
1、项目之前大多数使用公司的标准库,但是现在需要使用MFC读取.ini文件字符串,读取串口的16位信号,因此找一下方法,记录一下
二、参考:
1、MFC读取.ini文件的方法
https://www.cnblogs.com/yaowen/archive/2013/01/21/2870276.html
①总结:待测试:
三、步骤:
1、运行效果:
可以批量读取.ini文件字符串
1、注意:
①当时使用char 对象,一直无法读取成功,后来发现不能使用char,因为GetPrivateProfileString参数是宽字符
②要使用这个wchar_t进行批量处理
1、代码
//测试:成功:读取ini多个字符串
//第一步:找到配置文件路径
TCHAR tchBuffer[MAX_PATH];
LPWSTR curPath;
curPath = tchBuffer;
GetCurrentDirectory(MAX_PATH,curPath);
CString fileName("//config.ini");
CString path(curPath);
path = path + "/../bin/Resource/Config"+fileName;
//第二步:准备批量处理读取配置文件的串口信息
string str_target;
TCHAR tc0[MAX_PATH];
for(int i=0;i<6;i++)
{
//char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
//wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。
//char c_key[MAX_PATH];//失败,不能使用char,因为GetPrivateProfileString参数是宽字符
//sprintf(c_key,"signal%d",i);
wchar_t c_key[MAX_PATH];
wsprintf(c_key,L"signal%d",i);
GetPrivateProfileString(L"Signal",(LPCWSTR)c_key,L"",tc0,MAX_PATH,path);
//str_target= WCharToMByte(tc0);
//m_serialPort.vec_str_target.push_back(str_target);
}
3、文件夹设置
我设置的MFC发布的exe在这个文件夹中,所以读取路径的时候需要注意