_Faby_ Geschrieben 26. Januar 2011 Geschrieben 26. Januar 2011 Hallo an alle, Ich habe ein Problem vllt kann mir jmd helfen ALSO: Ich hab ein prog das Werte aus der Registry ausließt und auflistet und man diese dann umsortieren kann. Dazu brauch ich bei RegQueryValueEx den parameter LPCSTR lpValueName. Dieses hab ich durch CString s; POSITION pos = NULL; pos = m_listEnv.GetFirstSelectedItemPosition(); SelectedIndex = m_listEnv.GetNextSelectedItem(pos); s = m_listEnv.GetItemText(SelectedIndex, 0); dann mache ich so dies und das: LONG retn = RegOpenKeyEx(HKEY_LOCAL_MACHINE, m_registryKey, 0L, MAXIMUM_ALLOWED, ®Key); try { if(RegQueryValueEx(regKey, s, NULL, &dwType, NULL, &buffersize)==ERROR_SUCCESS) { m_EnvTokEntries = 0; int zaehler = 0; puffer = (TCHAR*)calloc(buffersize+1, sizeof(TCHAR)); if(RegQueryValueEx(regKey, s, NULL, &dwType, (unsigned char*) puffer, &buffersize)==ERROR_SUCCESS) { TCHAR* tok; tok = strtok(puffer, ";"); while(tok) { alltext[zaehler] = (TCHAR*)_tcsdup(tok); m_EnvTokEntries++; alltext = (TCHAR**)realloc(alltext, ++num_strings * sizeof(TCHAR*)); tok = strtok(NULL, ";"); zaehler++; } UpdateData(true); _tcscpy(speicher, alltext[m_sollVar-1]); _tcscpy(alltext[m_sollVar-1], alltext[m_toVar-1]); _tcscpy(alltext[m_toVar-1], speicher); *speicher = _T('\0'); zaehler = 0; while(zaehler<m_EnvTokEntries) { _tcscat(speicher, alltext[zaehler]); zaehler++; if(zaehler<m_EnvTokEntries) /*HIER*/ _tcscat(speicher, ";"); // <----HIER beim 4. durchlauf } if(RegSetKeyValue(regKey, s, NULL, dwType, speicher, buffersize)==ERROR_SUCCESS) MessageBox("Values have been transponsed.", "Hooray!", MB_OK|MB_ICONSTOP|MB_SETFOREGROUND); } } m_toVar=0; m_sollVar=0; UpdateData(false); if(alltext != NULL) free(alltext); if(puffer!=NULL) free(puffer); } catch(...) { MessageBox("Invalid pointer exception!\n Error reading files filter list.", "ProcessView", MB_OK|MB_ICONSTOP|MB_SETFOREGROUND); } RegCloseKey(regKey); In der letzen Schleife (Siehe Kommentar^^) beim 4. Durchlauf ist auf einmal mein "s" nur noch "mist", wenn ich aus der schleife draußen bin steht nix mehr in meinem CString woran kann des liegen? Bin für jeden vorschlag offen Danke schon mal im voraus Schönen Tag noch allen dies Lesen lg _Faby_ Zitieren
Klotzkopp Geschrieben 26. Januar 2011 Geschrieben 26. Januar 2011 Prüf, ob speicher groß genug ist. Zitieren
_Faby_ Geschrieben 26. Januar 2011 Autor Geschrieben 26. Januar 2011 damn ja klar ^^ ach dass ich des ned gesehen hab... so ein mist Vielen dank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.