C++ Code aus VS einbinden

Alles rund um die Programmierung mit Qt
Antworten
Morlockk
Beiträge: 4
Registriert: 25. Juni 2011 16:59

C++ Code aus VS einbinden

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
Antworten