GetPrivateProfileInt-仅读取默认值

Shi*_*mbo 5 c++ windows configuration winapi win32-process

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

[IP地址]

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");
Run Code Online (Sandbox Code Playgroud)

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

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

Chr*_*isV 8

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

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