Wert aus Registry lesen unter VS2008
-
Hi,
ich möchte einen Wert aus der Registry lesen. Ich erhalte bei diesem Code
jedoch den Hinweis, dass ich LPTSTR verwenden soll, sobald ich QueryValue aufrufe.
Auch muss ich dieses T-Macro verwenden. Warum ist das so?
Warum wurde das dahingehend verändert?Darf ich denn kein "char" mehr wie gewohnt verwenden?
CRegKey keyx; char bufferx[256]; DWORD dwCountx = sizeof( bufferx); keyx.Open( HKEY_CURRENT_USER, _T("SOFTWARE\\TEST"), KEY_READ); keyx.QueryValue( bufferx, _T("StringEintrag"), &dwCountx); //<---Hier für bufferx nun (LPTSTR)bufferx verwenden... keyx.Close();
-
Wenn Du bei der Erstellung des Projektes die Benutzung von Unicode explizit ausgeschaltet hast, dann sollte Dein Code keine Probleme bereiten.
-
Hi jencas,
hmm, mein Code funktioniert jetzt auch so wie oben beschrieben mit (LPSTR)bufferx,
allerdings ist der Eintrag in der Registry folgender "D:\MeinPfad".Ich erhalte jedoch nur "D". Der char wandert in einen CString.
Das mache ich ganz simpel mitCString x = bufferxDabei geht wohl alles bis auf einen Char flöten

In alten Projekten hat es so unter VS2003 immer funktioniert.
Was um Himmels willen hab ich nun wieder falsch zusammengeschustert?
-
Sorry für den Nachtrag, aber ich habe jetzt Unicode mal ersetzt durch
Multi-Byte-Zeichensatz verwenden (unter Zeichensatz).Was ich noch immer nicht begreife ist, dass eine CString-Zuweisung nicht
greift:CString xy = "Hallo "; CString ab = "Welt"; xy+=ab; MessageBox(xy); //Sollte "Hallo Welt" ergeben, es wird jedoch nur der Wert "Hallo" ausgegeben!