konvertierungsprobleme
-
hiho!
ich hab folgendes problem:
unsigned char t_data[99] = {""}; char* key_name; strcpy(key_name, t_data);
natürlich meckert der compiler bei dem strcpy. aber wie muss ich t_data konvertieren, damit es funktioniert? ich hab schon alles mögliche ausprobiert aber krieg's irgendwie nicht hin. mit const_cast hab ich scbon rumgespielt... vllt könnt ihr mir ja weiterhelfen.
oder vllt könnt ihr was mit dem gesamten code anfangen:
void RegAccess::db_out(char* key_name) { HKEY t_bufkey; unsigned char t_data[99] = {""}; unsigned long t_data_size = sizeof(t_data); char temp_key[] = ""; strcpy(temp_key, key_name); int t_err_code = RegOpenKeyEx(h_hKey, h_subkey, NULL, KEY_READ, &t_bufkey); RegQueryValueEx(t_bufkey, temp_key, NULL, NULL, t_data, &t_data_size ); RegCloseKey(t_bufkey); strcpy(key_name, t_data);
wobei h_hKey, h_subkey membervariablen sind, die haben ihre richtigen werte schon, HKEY_LOCAL_MACHINE und "SOFTWARE\\Test", dort habe ich schon einen wert in "InstTime" gespeichert (manuell), "InstTime" wird in key_name übergeben
hoffe ihr kriegt's hin
-
Wie groß, glaubst du, ist das Array temp_key?
-
unbeholfen_ schrieb:
hiho!
ich hab folgendes problem:
unsigned char t_data[99] = {""}; char* key_name; strcpy(key_name, t_data);
du hast unsigned char[], konvertierbar in unsigned char*. Aber du brauchst char*. Die beiden Typen sind nicht verwandt, also bleibt nur reinterpret_cast.
Ansonsten siehe Vorredner, du zerschießt dir den Stack.
-
danke, so hat's super geklappt. bin noch nicht so richtig vertraut mit c++, komme immer durcheinander weil es so viele möglichkeiten gibt, diese verflixten chars zu deklarieren ^^
-
nimm halt std::string
-
unbeholfen_ schrieb:
komme immer durcheinander weil es so viele möglichkeiten gibt, diese verflixten chars zu deklarieren ^^
IdR verwendet man aber nur char, denn das ist der Datentyp für ein Zeichen. signed char und unsigned char sind separate Typen und haben mit char erstmal nicht viel zu tun.