- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这两行代码。
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/
我有这两行代码。 CString strHost = AfxGetApp()->GetProfileString(_T("WebServices"), _T("Server")); AfxMessag
我是一名优秀的程序员,十分优秀!