使用64编译器在C 中读取INI文件

Read ini file in C++ using 64 compiler

本文关键字:读取 INI 文件 编译器 使用      更新时间:2023-10-16

我想使用Visual Studio的64位编译器在C 中读取INI文件,而GetPrivateProfileString()对于64位编译器不起作用,它仅适用于Win32。除了使用GetPrivateProfileString() ??

外,有什么方法可以读取此类文件

GetPrivateProfileString()适用于64位编译器,它仅适用于Win32。

这绝对是不正确的。Win32函数的几乎所有所有均以64位版本的形式获得,并且GetPrivateProfileString也不例外。如果您无法使其正常工作,那么您编写的代码是错误的。不幸的是,您没有显示该代码,所以我们无法告诉您如何修复它。

尝试调用此功能时,请确保您将完全符合条件的路径传递给文件!相对路径不会具有所需的效果。

但是,无论如何您可能不应该使用GetPrivateProfileString。正如文档所说:

Note 此功能仅用于与基于16位Windows的应用程序的兼容性。应用程序应将初始化信息存储在注册表中。

ini文件有时仍然是一个合理的选择 - 例如,例如您不想修改注册表的"便携式"应用程序的设置文件,但是您仍然不应使用Windows Get/SetPrivateProfile* API函数读写这些文件。它们非常旧,直接从16位窗户移植,并且出于向后兼容的原因包含许多意外行为。它们也很慢,并且提供非常有限的功能。

尽管有很多替代方案,但我的个人建议将是Simpleini库。这是跨平台,使用C 标准库,并根据MIT许可发布。只需将其放入并开始使用它即可。我效果很好;我在我的MFC应用程序之一中使用它。

您也可以使用Boost读取INI文件。

我还不能发表评论,所以我要回答。
GetPrivateProfileString()在任何平台,Win32以及X64以及任何Charset Unicode或MBC上都可以在Visual Studio 2015下完美地工作。
仔细检查您的代码,或发布它,以便我们可以查看。