2017-09-28 2 views
0

versucht diese Funktion aber die Ausgabe ist Junk-WerteWie parse ich Registrierungswert vom Typ REG_SZ zu einer Variablen?

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

Reg Pfad: HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Visualstudio \ 14.0 \ VC \ Runtimes \ x64

Schlüsselname: Version

Wert: v14.0.24215.01

ich muß in der Lage, diesen Wert analysieren

+1

Parse es wie? Müssen Sie es an den '.'s trennen? – NathanOliver

+0

Ich brauche nur den ganzen Wert in einer Zeichenfolge –

+0

Es macht keinen Sinn, 'TCHAR' Zeug zu verwenden, wenn das Array sowieso breit sein wird. In jedem Fall wird heutzutage die Verwendung von geraden breiten Saiten empfohlen. – chris

Antwort

1

Sie müssen die Größe des Puffers über eine Variable angeben. Versuchen Sie dies:

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