GetPrivateProfileInt – 只读取默认值

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

[IP地址]

IPADDRESS = 169.254.115.22

[ScanConfiguration]

Scanfrequency = 2500

ScanResolution = 2500

由startAngle = 700000

StopAngle = 1100000

直到现在,我已经使用这个代码来读取数据。 我的项目是Unicode字符集,因此在string值之前使用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"); 

但我只获取variables中的默认值,而不是文件中的正确值。 我还没有做任何与registry。 有没有什么我必须做的registry中获得正确的价值..

任何build议将是有益的谢谢。

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

另外,不要指望从这些函数中得到完整的Unicode支持。 它们只是ANSI文本的Unicode包装器。