5

我正在尝试读取具有内容的 c++ 中的 .init 配置文件。

[IP地址]

IP地址=169.254.115.22

[扫描配置]

扫描频率=2500

扫描分辨率=2500

起始角度=700000

停止角=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");

但我只得到变量中的默认值,而不是文件中的正确值。我还没有对注册表做任何事情。为了获得正确的值,我必须在注册表中做些什么..

任何建议都会有所帮助谢谢。

4

1 回答 1

8

想到了一个想法:GetPrivateProfileString 和朋友们对他们如何找到 INI 文件有点奇怪。除非您指定 INI 文件的路径(甚至像 一样简单.\filename.ini),否则他们假定该文件位于 Windows 目录中。这几乎肯定不是您想要的,并且可能会导致找不到文件,从而导致找不到默认值。

此外,不要指望这些函数提供完整的 Unicode 支持。它们只是围绕 ANSI 文本的 Unicode 包装器。

于 2012-04-20T02:57:04.453 回答