Registry Problem...
-
@ Any: das allerletzte in deinem Beitrag kan ich leider noch nich
Was für hather nimst du CoolX ?
Bei mir geht auch das MS-Beispiel nicht glaube das liegt an den falschen Hather-Dateien.
-
Bei mir kommt bei meinem Programm immer der Fehler
error C2664: 'strlen' : Konvertierung des Parameters 1 von 'const unsigned char [17]' in 'const char *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatWie kann ich den umgehen und was bedeutet er eigentlich?
-
Du verwendest ein BYTE-Array, welches 8bit-Werte ohne Vorzeichen enthält als char-Zeiger, welches 8bit mit Vorzeichen entspricht.
Die Lösung, char cString[] = "..." statt BYTE cString[] = "...", ist schon dreimal genannt worden.
-
Ja das wurde mehrfach gesagt aber wen ich char stat BYTE schreibe kommt der Fehler
error C2664: 'RegSetValueExA' : Konvertierung des Parameters 5 von 'char [17]' in 'const unsigned char *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatWas heist das jetzt wieder, ich hab das mit dem reinterpret_cast schon probiert aber warscheinlich falsch gemacht.
reinterpret_cast< char* >( cString );aber warscheinlich ist das falsch weil dan kommt der gleiche Fehler.

-
Du hast einen (signed) char[] und benötigst einen unsigned char* - damit dürfte doch wohl klar sein, in welche Richtung du casten mußt:
reinterpret_cast< unsigned char* >( cString )(das mußt du btw als Argument deines RegSetValueEx() Aufrufes anstelle von "cString" eintragen)
-
Ok hab ich probiert :
RegSetValueEx(hKey,"EintragsName",0,REG_SZ,reinterpret_cast< unsigned char* >( cString ),strlen(reinterpret_cast< unsigned char* >( cString ))+1);dan kommt der Fehler
error C2664: 'strlen' : Konvertierung des Parameters 1 von 'unsigned char *' in 'const char *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatDaraus schliest man ja das man in const char* casten muss:
RegSetValueEx(hKey,"EintragsName",0,REG_SZ,reinterpret_cast< const char* >( cString ),strlen(reinterpret_cast< const char* >( cString ))+1);Doch dan kommt diser Fehler:
error C2664: 'RegSetValueExA' : Konvertierung des Parameters 5 von 'const char *' in 'const unsigned char *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatDarauf schreibe ich das:
RegSetValueEx(hKey,"EintragsName",0,REG_SZ,reinterpret_cast< const unsigned char* >( cString ),strlen(reinterpret_cast< const unsigned char* >( cString ))+1);und trotzdem kommt das:
error C2664: 'strlen' : Konvertierung des Parameters 1 von 'const unsigned char *' in 'const char *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatSolangsam fühl ich mich von meinem Compiler verars...
Ist der kaput oder warum kommt da son mist raus?
-
Gnah, RegSetValueEx will const unsigned char* und wenn du in diesen Typ castest, nimmt der Compiler das auch an. Die anderen Fehler beziehen sich auf strlen, das einen const char* haben will. Bis jetzt stocherst du immer nur mit den Typen rum und machst eins von beiden in jedem Fall falsch.
-
Ich will nicht nerfen , wie löse ich das?
Kan mir fieleicht jemand einen Funktionierenden Quellcode geben?
bidde
-
RegSetValueEx(hKey,"EintragsName",0,REG_SZ,reinterpret_cast< const unsigned char* >( cString ),strlen(reinterpret_cast< const char* >( cString ))+1);
-
Jetzt gets ,Danke Danke Danke