Wie konvertiert man unsigned char * in QString

8

Ich weiß, das ist eine sehr grundlegende Frage, aber manchmal passiert es, dass du dein Grundkonzept verlierst :) Habe Goggling versucht, aber auch nicht genug Unterstützung.

Ich verwende eine vordefinierte Bibliothek von einem unserer Geräteinhaber. Sie haben eine Erklärung als:

%Vor%

Diese Variable erhält die Seriennummer des Geräts in hexadezimaler Schreibweise. Jetzt verwende ich diese Bibliothek in Qt, um die Seriennummer in QLineEdit anzuzeigen. Dafür muss ich es in QString konvertieren.

Versucht, QString :: UTF8, strcpy (), sprintf () usw. zu verwenden, aber Mülldaten zu erhalten.

So kann mir jemand einen Weg vorschlagen, um es zu erledigen.

    
skg 14.09.2012, 02:03
quelle

4 Antworten

6

Hallo Probieren Sie die folgende Funktion aus ...

%Vor%     
user1550798 14.09.2012, 02:36
quelle
4

Die Antwort von User1550798 ist sehr nah, funktioniert aber nicht ganz (einige ausgegebene Ausgaben sind beschädigt), da sie nur den Wert "0" in eine gefüllte Ausgabe von 2 Zeichen umwandelt (zB: "00"). Stattdessen sollten alle einstelligen Hexadezimalwerte mit einer Null (dh: "3" - & gt; "03") aufgefüllt werden.

Versuchen Sie stattdessen Folgendes:

%Vor%     
Marchy 18.07.2013 03:08
quelle
0

int lengthOfString = strlen (reinterpret_cast (str)); // Fehler, wenn versucht wird, die Länge wie "00889966"

zu erhalten %Vor%     
rocky 17.06.2014 03:15
quelle
0

Von unsigned char * zu QString:

%Vor%

Von QString zu unsigned char *:

%Vor%     
Тарик Ялауи 28.02.2018 13:53
quelle

Tags und Links