Qt QByteArray Null anhängen

Gast #2366819
Lesenswert?

Hallo Forum,

ich habe ein Problem mit Qt:

ich versuche einem QByteArray eine 0x0 anzuhängen:

 qba.append(4);
 qba.append("text");

 qba.append(0);
 qba.append(0x0);

die ersten zwei Aufrufe funktionieren wie gewünscht, die letzten nicht:
 error: call of overloaded ‘append(int)’ is ambiguous
es werden mir dann noch alternativen vorgeschlagen: char, const char*, 
const QByteArray&, const QString&

ich denke, ich brauche hier die stringterminierende Null.
Das Script zu dem ich das Program schreibe sagt "Die Sequenz wird durch 
ein Längenfeld gebildet, das dem Text vorangestellt wird, der Abschluß 
wird durch ein leeres Textfeld gebildet, dem die 0x0 vorangestellt ist", 
das Beispiel sieht entsprechend so aus: 0x4Text0x0.

Der erste Teil läßt sich erzeugen wenn ich

 qba.append(4);
 qba.append("text");

nehme, aber egal wie ich mich anstelle, ich bekomme keine neue Null 
dazu, das einzige was hilft ist qba.resize(qba.size()+1) ... aber das 
kann es doch nicht sein. Was muss ich tun?

Mit freundlichen Grüßen
Roland
Gast #2366921
Lesenswert?

Roland schrieb:
>  error: call of overloaded ‘append(int)’ is ambiguous
> es werden mir dann noch alternativen vorgeschlagen: char, const char*,
> const QByteArray&, const QString&

Zu deutsch: Es gibt keine Funktion append, die direkt mit einem int 
umgehen kann. Der übergebene Wert muß also in einen anderen Typ 
konvertiert werden. Das kann der  Compiler nicht implizit tun, da er 
mehere Alternativen dafür hat. Du muß ihm daher durch einen Cast 
explizit sagen, welche der angegebenen Alternativen er nutzen soll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren