RegQueryValueEx
-
Hallo, ich hab' bisher diesen Code hier:
TCHAR Key[20]; HKEY hKey; DWORD size; . . . if(RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\AnwName"), 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) { size = 20 * sizeof(TCHAR); RegQueryValueEx(hKey, TEXT("RegKey"), NULL, NULL, (LPBYTE) &Key, &size); RegCloseKey(hKey); MessageBox(NULL, Key, TEXT("Key"), 0);
Das Problem ist nur, dass MessageBox nicht das ausgibt, was in der Registrierung steht, sondern merkwürdige Zeichen...
Was hab' ich falsch gemacht?
Danke
Ole
-
Vielleicht liegt es daran, dass an der Stelle des Schlüssels Strings anders interpretiert werden als "TCHAR" und deshalb nur komische Zeichen ausgegeben werden.
Hast du dir schon mal den Inhalt von "Key" nach dem Auslesen angesehen?
-
Nimm mal vor Key das & weg! Key ist schon ein Pointer
-
Ob nun mit oder ohne & - Da kommt immer was zufälliges raus (wahrscheinlich das, was sich vorher im Speicher befunden hat - wenn ich alle Elemente des Arrays auf 0 setze und dann die Funktion aufrufe, sind immer noch alle Elemente 0. ALso scheint die Funktion gar nichts da brein zu schreiben...
-
Was gibt denn RegQueryValueEx zurück? Hast du mal den Thread zur Registry in den FAQ angeschaut?
-
Gibt 234 zurück...
Ich hab' mir bisher nur die MSDN angesehen - aber in der FAQ steht eigentlich auch nicht mehr...
-
234 -> ERROR_MORE_DATA -> More data is available.
Ich nehme mal an, dass dein Key-Buffer zu klein ist
-
Danke, jetzt klappt's!