Seite 1 von 1

C++ Code aus VS einbinden

Verfasst: 6. Juli 2011 14:23
von Morlockk
Servus!

Ich habe in Visual Studio eine Konsolenanwendugn geschrieben, die in mehreren Schritten Korrekturen an Wörtern vornimmt. Nun möchte ich diese in ein simples GUI einbinden. Links ein LineEdit als Eingabe, rechts ein LineEdit als Ausgabe und darunter ein pushButton der die Umwandlungsfunktion anstoßen soll.

Nun braucht die Funktion allerdings ein char array damit es arbeiten kann. Die Umwandlung wollte ich in etwa so vornehmen:

Code: Alles auswählen

QString arg;
    string *b;
    b = ui->eingabe->text().toAscii();
Irgendwie habe ich aber noch Probleme die vorher wunderbar funktionierende Funktion einzubinden. Gibt es dazu gescheite Tutorials?
Wie übergebe ich den eingegebenen String am besten als char an die Funktion und wie sage ich dieser, dass sie am Ende wieder einen QString zurück an das Ausgabefenster geben soll??

Hmm

Verfasst: 6. Juli 2011 20:06
von Christian81
Und wo genau ist das Problem? Die Funktionen um auf die QString-Daten zuzugreifen hast du doch schon, andersrum gibts eben einen Konstruktor.

Verfasst: 7. Juli 2011 11:13
von RHBaum
was genau bitte ist string * ???

toAscii() liefert Dir nen QByteArray.
da solltes mit nem constData() auf dein const char * runterkommen, das du brauchst ...
Wobei, es das hat auch nen operator const char * () const
Nur ist dein QByteArray temporaer, und dein zeiger zeigt ins leere ...

const char * MyString = ui->eingabe->text()oAscii();
/// und hier sollte MyString Schon ne Leiche sein
/// Richtiger:
QByteArray strMyString = ui->eingabe->text().toAscii();

Und strMyString solange halten, solange zeiger auf den String bruchst.
solange strMyString existiert, kannst immer sowas machen:
const char * MyString = strMyString.constData();

Oder eben die Operatoren nutzen .... (wobei ich die c++ technisch eben wegen sowas fuer gefährlich halte, also nicht das verwenden, wenn es die schonmal gibt, sondern das es die Teile überhaupt gibt ist die Gefahr ... ).

Ciao ...