//写入文本
void WriteString(CRegKey &key, CStringW valueName, CStringW value)
{
key.SetStringValue(valueName, value);
}
//写入bool
void WriteBoolean(CRegKey &key, CStringW valueName, bool value)
{
WriteString(key, valueName, value ? _T("true") : _T("false"));
}
//写入DWORD
void WriteDWORD(CRegKey &key, CStringW valueName, DWORD value)
{
key.SetDWORDValue(valueName, value);
}
//写入注册表
void WriteProps()
{
CRegKey key;
key.Create(HKEY_LOCAL_MACHINE, _T("Software//chain//cpp"));
WriteString(key, _T("game"), _T("Kage"));
WriteDWORD(key, _T("year"), 1990);
WriteBoolean(key, _T("IsPass"), true);
}
//读取文本
bool ReadString(CRegKey &key, CStringW valueName, CStringW &value)
{
TCHAR s[_MAX_PATH];
DWORD len = _MAX_PATH;
if (key.QueryStringValue(valueName, s, &len)== ERROR_SUCCESS)
{
value = s;
return true;
}
return false;
}
//读取bool
bool ReadBoolean(CRegKey &key, CStringW valueName, bool &value)
{
CStringW s;
//先读取文本值
if (ReadString(key, valueName, s))
{
//判断是否为true
value = (CStringW("true").CompareNoCase(s)==0);
return true;
}
return false;
}
//读取DWORD
bool ReadDWORD(CRegKey &key, CStringW valueName, DWORD &value)
{
DWORD dw;
if (key.QueryDWORDValue(valueName, dw)==ERROR_SUCCESS)
{
value = dw;
return true;
}
return false;
}
//读取注册表
void ReadProps()
{
CRegKey key;
key.Open(HKEY_LOCAL_MACHINE, _T("Software//chain//cpp"));
CStringW game;
DWORD year;
bool IsPass;
ReadString(key, _T("game"), game);
ReadDWORD(key, _T("year"), year);
ReadBoolean(key, _T("IsPass"), IsPass);
_tprintf(_T("游戏名:%s/r/n发行年:%d/r/n是否通关:%s/r/n"), game, year, IsPass? _T("已通关") : _T("未通关"));
}
int main()
{
setlocale(LC_ALL, "chs");
WriteProps();
Sleep(100);
ReadProps();
return 0;
}
void WriteString(CRegKey &key, CStringW valueName, CStringW value)
{
key.SetStringValue(valueName, value);
}
//写入bool
void WriteBoolean(CRegKey &key, CStringW valueName, bool value)
{
WriteString(key, valueName, value ? _T("true") : _T("false"));
}
//写入DWORD
void WriteDWORD(CRegKey &key, CStringW valueName, DWORD value)
{
key.SetDWORDValue(valueName, value);
}
//写入注册表
void WriteProps()
{
CRegKey key;
key.Create(HKEY_LOCAL_MACHINE, _T("Software//chain//cpp"));
WriteString(key, _T("game"), _T("Kage"));
WriteDWORD(key, _T("year"), 1990);
WriteBoolean(key, _T("IsPass"), true);
}
//读取文本
bool ReadString(CRegKey &key, CStringW valueName, CStringW &value)
{
TCHAR s[_MAX_PATH];
DWORD len = _MAX_PATH;
if (key.QueryStringValue(valueName, s, &len)== ERROR_SUCCESS)
{
value = s;
return true;
}
return false;
}
//读取bool
bool ReadBoolean(CRegKey &key, CStringW valueName, bool &value)
{
CStringW s;
//先读取文本值
if (ReadString(key, valueName, s))
{
//判断是否为true
value = (CStringW("true").CompareNoCase(s)==0);
return true;
}
return false;
}
//读取DWORD
bool ReadDWORD(CRegKey &key, CStringW valueName, DWORD &value)
{
DWORD dw;
if (key.QueryDWORDValue(valueName, dw)==ERROR_SUCCESS)
{
value = dw;
return true;
}
return false;
}
//读取注册表
void ReadProps()
{
CRegKey key;
key.Open(HKEY_LOCAL_MACHINE, _T("Software//chain//cpp"));
CStringW game;
DWORD year;
bool IsPass;
ReadString(key, _T("game"), game);
ReadDWORD(key, _T("year"), year);
ReadBoolean(key, _T("IsPass"), IsPass);
_tprintf(_T("游戏名:%s/r/n发行年:%d/r/n是否通关:%s/r/n"), game, year, IsPass? _T("已通关") : _T("未通关"));
}
int main()
{
setlocale(LC_ALL, "chs");
WriteProps();
Sleep(100);
ReadProps();
return 0;
}