Saubere Art und Weise zu konvertieren QString nach char * (nicht const char* !!!!)

Habe ich einen hässlichen code für dieses Zeug (erstellen Sie ein c-char-Zeiger und kopieren Sie den QString in es), aber vielleicht ... existieren in QT eine elegante Art und Weise ...

tatsächlichen code :

QString maquina is a method parameter.

char *c_maquina = new char[maquina.length() + 1];
strcpy(c_maquina, maquina.toStdString().c_str());

nur für Informationen, die ich brauche einem ECHTEN char* nicht eine einfache const char*, so dass dieser code nicht funktioniert :

idMaquina.toLatin1().data();

Kann ich nicht verwenden http://developer.qt.nokia.com/faq/answer/how_can_i_convert_a_qstring_to_char_and_vice_versa

  • "Ich kann kein link" - warum ist die Verbindung nicht nutzbar ist? Sie muss klarer sein. Erklären Sie nicht nur das problem mit Ihrem direkten plan (erhalten einen char* aus einer QString), aber was führte Sie zu denken, Sie brauchte das.
  • Yakk, kann ich nicht verwenden, konvertieren Sie erklären, wie Sie in den link, da es sich um eine Konvertierung zwischen einem QString und ein char* (ohne Möglichkeit zum überschreiben char*).ich brauche ein char* mit posible überschreiben, hoffe ich, dass ein QString-Funktion für diese... thx für dein Kommentar.
  • Ich weiß immer noch nicht, warum Sie nicht verwenden die verlinkten Lösung. Das problem ist, dass der Beispielcode verwendet const char* und nicht char*? .data() gibt eine char*. Außerdem, was wollen Sie tun, mit der beschreibbare char*?
  • da mein code Aufruf einer c-Bibliothek und die Antwort ist leer, wenn die Verwendung einer const char* oder, wenn Sie verwenden ein .Daten() direkt, wie das Beispiel von dem link.ich kann nicht ändern Sie den code der library c (im inneren des Systems des Kunden....)
  • und was hat der C-Bibliothek mit der char*? Einfach "immer eine char*" nicht die Antwort auf Ihre problem. Hoffen Sie, dass die Daten aus der C-Funktion? Gibt es keine Möglichkeit zu wissen, wie lange die Daten, die er geben wollte, die Sie ist? Bitte geben Sie die Signatur der Funktion, die Sie versuchen zu nennen.
  • sorry Yakk ich nicht sehr klar war meine Frage in Wirklichkeit war es nur ein problem der lokalen Variablen ... sorry für deine Zeit.
  • mögliche Duplikate von Umwandlung von QString nach char*

Schreibe einen Kommentar