c++anfaenger Geschrieben 14. November 2008 Geschrieben 14. November 2008 Hallo, ich habe folgendes Problem: Ich möchte einen std:string in die entsprechende hex-Dastellung also z.B. 06 F7 ... umwandeln. Weiteres Problem ist das ich danach noch caste in der Form (BYTE*)a.c_str(). Die Darstellung sollte danach erhalten bleiben. Zitieren
Klotzkopp Geschrieben 14. November 2008 Geschrieben 14. November 2008 Leg einen stringstream an, und dann jedes Zeichen der Reihe nach nach unsigned int umwandelnmit den Manipulatoren hex, setw(2) und setfill('0') in den stringstream stecken Zitieren
c++anfaenger Geschrieben 14. November 2008 Autor Geschrieben 14. November 2008 Habe folgenden Code gefunden, der bis auf dir Formatierung das richtige liefert: string hexdump( const string& s ) { stringstream ss; string::size_type len = s.length(); ss.flags( ios::hex ); for( string::size_type i=0; i<len; ++i ) { ss << setw(2) << setfill('0') << static_cast<unsigned int>(s); } return ss.str(); } Zitieren
Klotzkopp Geschrieben 14. November 2008 Geschrieben 14. November 2008 Habe folgenden Code gefunden, der bis auf dir Formatierung das richtige liefert:Was heißt denn "bis auf die Formatierung"? Im Übrigen ist das ziemlich genau das, was ich vorgeschlagen habe. Zitieren
c++anfaenger Geschrieben 14. November 2008 Autor Geschrieben 14. November 2008 Formatierung war natürlich der falsche Ausdruck. Habe blöden Fehler gemacht. Muss mit dem Programm jeweil 2 Registrywerte erstellen. Der eine ist der Form REG_SZ der andere REG_BINARY. Falls REG_BINARY gewählt, wird das als Wert einzutragende byte array direkt umgewandelt. Hatte nur vergessen bei zweiten Wert auch auf REG_BINARY umzustellen. Das Umwandeln war somit gar nicht nötig, da sonst die hex Darstellung nochmals in hex umgewandelt wird. Aber vielen Dank für die schnelle Hilfe! Zitieren
TDM Geschrieben 14. November 2008 Geschrieben 14. November 2008 Für was braucht man beim Schreiben in die Registry einen String? Mit RegSetValueEx kannst du auch einfach die gecastete Adresse eines DWORD-Wertes übergeben. 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.