RegQueryValueEx - Text variable?

athlon

Mitglied
Folgendes Problem:

Dieser Code soll den wert vom Schlüssel "Test" auslesen.
Der Schlüssel hat den Wert "yes" aber die if() abfrage funktioniert nichzt weil
der das irgendwie nicht abgleichen kann d.h. scheinbar muss ich "yes" noch irgendwie umwandeln -> aber in was?

Code:
char dwText [MAX_PATH] = "";
HKEY hKey;
RegOpenKeyEx(HKEY_CURRENT_USER, "Test", 0, KEY_READ, &hKey); 
RegQueryValueEx(hKey, "Test", 0, REG_SZ, (LPBYTE)&dwText , MAX_PATH); 


if (dwText == "yes")
{
cout << "yes";
}
 
Code:
if (dwText == "yes")
Das klappt nicht, weil du hier irrtümlich zwei Pointer vergleichst. dwText ist in dieser Form ein Pointer auf den ersten Character der Zeichenkette dwText[], die du oben definierst.
Du benötigst einen Stringvergleich zwischen dwText und "yes". Ersetze deine Abfrage durch folgende, dann sollte es klappen:
Code:
if ( strcmp( dwText,  "yes" ) == 0 )
strcmp() vergleicht zwei Zeichenketten und liefert bei Gleichheit 0 zurück. Du musst die <string.h> includen.

Übrigens ist es etwas irreführend, eine Zeichenkette mit dem Prefix "dw" zu versehen, weil "dw" normalerweise für DWORDs verwendet wird.
 

Neue Beiträge

Zurück