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.
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
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(); }
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.
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!
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden