如何解析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

我需要能够分析该值

+1

解析它如何?你需要把它分成'.'吗? – NathanOliver

+0

我只需要一个字符串中的整个值 –

+0

如果数组将会变宽,那么使用'TCHAR'就没有意义了。无论如何,现在推荐使用宽直线。 – chris

您需要通过变量提供缓冲区的大小。试试这个:

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);