(MFC mit dem...) Registry FAQ
-
Hallo
Hab folgendes aus der FAQ:
BYTE *cString="Hallo, das ist der eigentliche Wert, der unter dem Namen EintragsName gespeicehrt wird"; RegSetValueEx(hKey,"EintragsName",0,REG_SZ,cString,strlen(cString));
Aber ich bekomm in der Zeile mit dem BYTE immer folgenden Fehler angezeigt:
error C2440: 'initializing' : 'char [87]' kann nicht in 'unsigned char *' konvertiert werden
Kann mir bitte jemand sagen, was da falsch ist, danke
-
Statt BYTE* (= unsigned char*) solltest du char* nehmen.
[ Dieser Beitrag wurde am 27.11.2002 um 10:38 Uhr von Nemesyzz editiert. ]
-
Hab ich auch schon mal probiert, da kommt das:
error C2664: 'RegSetValueExA' : Konvertierung des Parameters 5 von 'char *' in 'const unsigned char *' nicht moeglich
-
[ Dieser Beitrag wurde am 27.11.2002 um 21:42 Uhr von dEUs editiert. ]
-
BYTE cString[]="Hallo, das ist der eigentliche Wert, der unter dem Namen EintragsName gespeicehrt wird";
-
Volltreffer, danke
-
Eine Frage bleibt aber noch: Der Wert der jetzt in die Registry geschrieben werden soll, kommt aus einer CString Variable, wie bekomm ich die da jetzt hinein ?
Oder ganz von vorne:
Es geht darum einen mehrzeiligen Text in die Registry zu schreiben, wie ist egal.
Weiß da jemand weiter ?
Ich machs jetzt mit REG_MULTI_SZ und dem Code aus der FAQ, aber da ist noch das Problem mit dem Cstring weil strcpy geht irgendwie nichtDanke
[ Dieser Beitrag wurde am 27.11.2002 um 22:06 Uhr von CrazyOwl editiert. ]
-
CString::GetBuffer liefert dir einen Zeiger auf den Puffer deines CString objekts,damit sollte es klappen.
MfG Spacelord
-
Das klappt nicht
Hat da niemand ein Beispiel für mich, biiiiitte
Morgen Mittag muss das funktionieren
Er sagt immer, dass er den entsprechenden Parameter nicht konvertieren kann
[ Dieser Beitrag wurde am 28.11.2002 um 18:17 Uhr von CrazyOwl editiert. ]
-
Zeig mal deinen Code.
-
REG_MULTI_SZ ist doch eine Zeichenkette,oder?
-
Ja. und?
-
REG_MULTI_SZ: An array of null-terminated strings, terminated by two null characters.
Das kommt aus der MSDN und ich glaub auch, dass das da das Problem liegt.
Das war jetzt der letzte Versuch mit nur mehr einem Fehler:
CString str; str = "abs"; RegSetValueEx(hKey,"Bezeichnung",0,REG_MULTI_SZ,str.GetBuffer(0),str.GetLength());
error C2664: 'RegSetValueExA' : Konvertierung des Parameters 5 von 'char *' in 'const unsigned char *' nicht moeglich
PS: Sorry für das Crossposting im MFC Forum, aber weil ich das wirklich dringend brauche wollte ich einen Link dort.
[ Dieser Beitrag wurde am 28.11.2002 um 18:54 Uhr von CrazyOwl editiert. ]
-
(BYTE*) vor str.GetBuffer(0) und gut is.
Aber das bringt dir nicht viel, weil CString keine Nullen speichert.
-
Ähm DANKE das wars dann wohl
-
Für CString haben wir ein extraforum.