[英]MFC - Problem using CSettingStore to open registry key
我想通过读取键“ Software \\ Microsoft \\ NET Framework Setup \\ NDP \\ v3.5”的“ Install”值来检查是否已安装.NET 3.5 Framework。 我很高兴发现有一个MFC类CSettingStore可以轻松完成此工作,但我发现CSettingStore.Open总是返回false。
代码如下:
bool bOpen = reg.Open(_T("Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5"));
if (bOpen && reg.Read (_T("Install"), dwInstall))
{
return dwInstall == 1;
}
在这种情况下,reg.Open始终返回false。
代码有什么问题吗?
在http://msdn.microsoft.com/zh-cn/library/bb982796.aspx中,我阅读:
<quote>
bAdmin
的含义实际上是相反的,如果bAdmin
为true,则密钥为HKEY_LOCAL_MACHINE
;如果为false,则密钥为HKEY_CURRENT_USER
。 您可以在afxsettingsstore.cpp
亲自afxsettingsstore.cpp
:
CSettingsStore::CSettingsStore(BOOL bAdmin, BOOL bReadOnly) :
m_bReadOnly(bReadOnly), m_bAdmin(bAdmin), m_dwUserData(0)
{
m_reg.m_hKey = bAdmin ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
}
</quote>
因此,它看起来像是一个文档错误。 是否CSettingsStore reg (TRUE, TRUE);
工作更好?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.