我正在尝试用包含内容的c ++读取.init配置文件。
[Ipaddress:显示]
Ipaddress:显示= 169.254.115.22
[ScanConfiguration]
Scanfrequency = 2500
ScanResolution = 2500
由startAngle = 700000
StopAngle = 1100000
直到现在,我已经使用此代码来读取数据。我的项目是Unicode字符集,因此在字符串值之前使用了L。
int iScanFreq =GetPrivateProfileInt(L"ScanConfiguration",L"Scanfrequency", 2500, L"filename.ini");
int iScanRes =GetPrivateProfileInt(L"ScanConfiguration",L"ScanResolution", 2500, L"filename.ini");
int iStartAngle =GetPrivateProfileInt(L"ScanConfiguration",L"StartAngle", -450000, L"filename.ini");
int iStopAngle =GetPrivateProfileInt(L"ScanConfiguration",L"StopAngle", 2250000, L"filename.ini");
但我只得到变量中的默认值而不是文件中的正确值。我还没有对注册表做任何事情。在注册表中我有什么需要做的才能获得正确的值..
任何建议都会有所帮助 感谢。
答案 0 :(得分:8)
我想到了一个想法:GetPrivateProfileString和朋友们对他们如何找到INI文件有一点疑惑。除非您指定INI文件的路径(甚至像.\filename.ini
那样简单),否则它们会假定该文件位于Windows目录中。这几乎肯定不是你想要的,并且可能导致找不到文件,从而导致默认值。
此外,不要指望这些功能提供完整的Unicode支持。 They're just Unicode wrappers around ANSI text.