gpt4 book ai didi

c++ - 如何知道 GetPrivateProfileInt/String 失败的原因

转载 作者:可可西里 更新时间:2023-11-01 11:49:14 28 4
gpt4 key购买 nike

我正在处理旧应用程序中的一段代码,在 Visual Studio 2008 中使用 C++。它尝试从 INI 文件中读取一些值,并且我正在尝试在该部分的情况下进行一些错误处理或文件中不存在我尝试读取的 key 。

这是代码片段:

int nValue = GetPrivateProfileInt (SECTION, KEY, -1, sINIFile);
if(nValue == -1) // default value
{
int nLastError = GetLastError();
if(nLastError != 0)
{
// do something
}
}

sINIFile 包含我所需的 INI 文件的完整路径。

经过一些测试,我发现 GetLastError() 在以下情况下返回 2 (ERROR_FILE_NOT_FOUND):

  1. 文件不存在或者,

  2. 该部分不存在或,

  3. key 不存在。

我想知道 GetPrivateProfileInt 返回默认值的具体原因 - 这可能吗?

注意:我检查过“errno”(或 errorno,如 MSDN 页面上所述)的值,但对于上述任何情况,此值始终为 0。

最佳答案

如果 GetLastError() 没有帮助,那么您需要做一些侦探工作。您应该自行检查注册表项或文件是否存在(您知道大多数 ini 文件都映射到注册表,对吗?),或者该部分是否不存在 (GetPrivateProfileSection),如果这些都不适用,则 key 不存在。

关于c++ - 如何知道 GetPrivateProfileInt/String 失败的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34437470/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com