GetPrivateProfileInt-仅读取默认值

时间:2012-04-20 02:46:50

标签: c++ windows winapi configuration win32-process

我正在尝试用包含内容的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");

但我只得到变量中的默认值而不是文件中的正确值。我还没有对注册表做任何事情。在注册表中我有什么需要做的才能获得正确的值..

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

1 个答案:

答案 0 :(得分:8)

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

此外,不要指望这些功能提供完整的Unicode支持。 They're just Unicode wrappers around ANSI text.