gpt4 book ai didi

c++ - MFC SetRegistryKey...有GetRegistryKey函数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:40 34 4
gpt4 key购买 nike

我有这两行代码。

CString strHost = AfxGetApp()->GetProfileString(_T("WebServices"), _T("Server"));
AfxMessageBox(strHost);

我没有在应用程序的任何地方设置值。 (安装程序会这样做)。因此,无论何时何地运行此行,strHost 都应该相同。

这是我得到的。按 A -> 运行包含代码的函数 -> 查看预期数据;按 B -> 执行一些窗口回调 -> 运行包含代码的函数 -> 查看“”;

我认为 B 中的某些东西正在清除值,但如果我先按 B 然后再按 A,A 会产生我想要的而不是“”。

遗憾的是,我无法访问保存 Windows 回调的代码,或者更确切地说,它必须是我见过的最大的管理不善的混淆。

我很好奇的是,如果 GetProfileString 从不应该的地方提取数据?这是我唯一能想到的。

问题。
1.) 有没有办法确认我仍在使用相同的“ key ”?
2.) 以前有人遇到过这个吗?

如果您认为这是一个不好的问题,并希望将其标记为这样,请发表评论以便我修复它。


虽然我没有完全找到答案,但我确实找到了一些有趣的东西。
我正在使用 AfxGetApp()->GetProfileString..
似乎函数 AfxGetApp() 在不同的时间返回不同的东西..我不确定这是怎么发生的,但至少我现在可以解释它。

最佳答案

除了注册表之外,GetProfileString() 还可以从 .ini 文件中读取。如果对 GetProfileString() 的调用是在与主应用程序中的对象不同的 CWinApp 派生对象上完成的(例如在 dll 中),它可能会尝试从应用程序的 .ini 文件中读取。尝试进入 GetProfileString() 以了解发生了什么。

但是我的建议是:不要使用 GetProfileString()。使用 CRegKey 直接查询注册表。这可能不是您想听到的,因为必须传递注册表项是一项重要的工作。我通常做的是在 stdafx.h 中#define 一个全局 APPLICATION_REG_KEY 宏。这让纯粹主义者感到不安,但它非常方便。

关于c++ - MFC SetRegistryKey...有GetRegistryKey函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/381131/

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