如何解析REG_SZ类型的注册表值到一个变量?
问题描述:
尝试这个功能,但输出是垃圾值如何解析REG_SZ类型的注册表值到一个变量?
WCHAR vcVER[256];
RegGetValue(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64"), _T("Version"), RRF_RT_REG_SZ, NULL, &vcVER, NULL);
注册路径:HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \微软\ VisualStudio的\ 14.0 \ VC \运行时\ x64的
键名:版本
值:v14.0.24215.01
我需要能够分析该值
答
您需要通过变量提供缓冲区的大小。试试这个:
WCHAR vcVER[256];
DWORD dwSize = _countof(vcVER);
RegGetValue(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64"),
_T("Version"), RRF_RT_REG_SZ, NULL, &vcVER, &dwSize);
解析它如何?你需要把它分成'.'吗? – NathanOliver
我只需要一个字符串中的整个值 –
如果数组将会变宽,那么使用'TCHAR'就没有意义了。无论如何,现在推荐使用宽直线。 – chris