【发布时间】:2014-07-31 12:36:24
【问题描述】:
WinAPI 或其他方面是否有任何规定可以使用 ini 文件(或类似样式的配置文件)而不必在大多数情况下使用 LPCWSTR?
我的应用程序始终使用单宽 ASCII 字符串,我刚刚开始阅读 ini 文件。事实证明,Unicode 字符串难以处理和相互转换。
如果我找不到相当简单的东西,我想我会使用 fstream 并完成它。
【问题讨论】:
-
WIN32 API 中几乎每个函数都有两个版本:一个用于窄字符,一个用于宽字符。我敢打赌 ini 文件的功能是一样的。
-
致电
GetPrivateProfileStringA。注意末尾的A,表示“ASCII”。 -
不要不使用遗留的 INI api 函数,它们仅可用于移植一个古老的代码库。它们非常昂贵,加载单个 INI 参数大约需要 50 毫秒。而且它们确实不支持 Unicode,即使函数签名表明它们支持。 INI 文件内容本身总是在假设默认系统代码页的情况下被读取,就像 25 年前所做的那样。
-
@HansPassant 我没有使用注册表来制作一个小型便携式实用程序,在典型使用期间只需加载几个参数。