hi
versuche QString zu string konvertieren doch es klappt nicht. Habe schon diverse Threads gelesen und probiert aber jedesmal nur fehler.
Habe Qt4.2.2 zulaufen und versuche QString zu string zu konvertieren aber das klappt nicht.
Wäre über einen Vorschlag froh...
QString Prob
Eine präzisere Fehlerbeschreibung wäre sinnvoll:
Was klappt denn nicht, bzw. was machst Du bisher?
Wenn Du einen STL String haben willst, sollte dir die Member Funktion von QString namens toStdString () weiterhelfen. Und wenn Du einen const char* haben willst, dann hilft die toLatin1().constData() weiter.
Oder auch das Makro qPrintable(QString)
war aber neulich schon mal irgendwo zu lesen
Was klappt denn nicht, bzw. was machst Du bisher?
Wenn Du einen STL String haben willst, sollte dir die Member Funktion von QString namens toStdString () weiterhelfen. Und wenn Du einen const char* haben willst, dann hilft die toLatin1().constData() weiter.
Oder auch das Makro qPrintable(QString)
war aber neulich schon mal irgendwo zu lesen
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
versuche folgendes:
lineEdit->text().toStdString();
Da schmiert er mir jedes mal ab. Im Debugger sieht das dann so aus:
Ich brauche schon ein ganz normalen string der wiederrum einer Fkt übergeben werden soll. Dieser String soll der Name einer Datei sein die in der Fkt geöffnet werden soll.
lineEdit->text().toStdString();
Da schmiert er mir jedes mal ab. Im Debugger sieht das dann so aus:
Code: Alles auswählen
Eine Ausnahme (erste Chance) bei 0x10252758 (msvcr80d.dll) in wavLesen.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccbf4.
Unbehandelte Ausnahme bei 0x10252758 (msvcr80d.dll) in wavLesen.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccbf4.
Das Programm "[3140] wavLesen.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Könntest du mir das erklären
Weis das es ein Standardfrage ist habe auch verschiedene Threads gefunden aber jeder versuch diese Antworten zunutzen ging gegen den Baum.
Ich habe mir vorher eine Funktion geschrieben die aus den Chunks einer wav Datei einige Informationen ausliest. Dies geschieht in dem ich der Funktion einen Dateinamen übergebe. Dies Funktioniert im CmD ohne Probleme aber jetzt würde ich gern aus einem LineEdit den Dateinamen holen und nun hat die Funktion das Problem das sie einen String erwartet.
Hmm naja gut wenn das alles nicht geht muss ich sehen wie ich die ganze Funktion umschreiben kann.
und wie qmake an der Stelle eingesetzt wird.Release-Qt-Dll im Debug-Modus
Weis das es ein Standardfrage ist habe auch verschiedene Threads gefunden aber jeder versuch diese Antworten zunutzen ging gegen den Baum.
Ich habe mir vorher eine Funktion geschrieben die aus den Chunks einer wav Datei einige Informationen ausliest. Dies geschieht in dem ich der Funktion einen Dateinamen übergebe. Dies Funktioniert im CmD ohne Probleme aber jetzt würde ich gern aus einem LineEdit den Dateinamen holen und nun hat die Funktion das Problem das sie einen String erwartet.
Hmm naja gut wenn das alles nicht geht muss ich sehen wie ich die ganze Funktion umschreiben kann.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wenn du dein Programm als Debug kompilierst, muss gegen QtCored4.lib/QtGuid4.lib/... gelinkt werden. Bei Release dagegen QtCore4.lib/QtGui4.lib/...
Wie qmake funktioniert steht in der Doku.
Allerdings weiss ich trotzdem noch nicht wofür std:string gut sein soll... wenn der Funktion ein String übergeben wird (und sie von Dir ist) - warum muss es dann ein std:string sein? Wandelst Du diesen dann intern wenn du per QFile() die Datei öffnest wieder um? Bei der Konvertierung nach std::string gehen wichtige Infos verloren.
btw: Kann es sein dass die E-Mail Benachrichtigung nicht mehr funktioniert?
Wie qmake funktioniert steht in der Doku.
Allerdings weiss ich trotzdem noch nicht wofür std:string gut sein soll... wenn der Funktion ein String übergeben wird (und sie von Dir ist) - warum muss es dann ein std:string sein? Wandelst Du diesen dann intern wenn du per QFile() die Datei öffnest wieder um? Bei der Konvertierung nach std::string gehen wichtige Infos verloren.
btw: Kann es sein dass die E-Mail Benachrichtigung nicht mehr funktioniert?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wenn Du sie mit fopen() öffnest, solltest Du trotzdem keinen std::string übergeben. Da verlierst Du nämlich die Kodierung -> immer solange QString verwenden bis es nicht mehr geht um die Kodierung nicht zu verlieren.
Des weiteren ist fopen() nicht gut da auch dort die Kodierung verloren geht (bei der Konvertierung von QString nach char*) -> es kann also auch dort sein dass Du eine Datei mit Sonderzeichen nicht öffnen kannst. Also entweder benutzt Du dann wfopen() in Zusammenspiel mit QString::toUtf16() oder eben gleich QFile - dann wird alles intern korrekt geregelt.
Ich habe seit gestern gar keine Mail bekommen... evtl. der gmx-Spamfilter?
Des weiteren ist fopen() nicht gut da auch dort die Kodierung verloren geht (bei der Konvertierung von QString nach char*) -> es kann also auch dort sein dass Du eine Datei mit Sonderzeichen nicht öffnen kannst. Also entweder benutzt Du dann wfopen() in Zusammenspiel mit QString::toUtf16() oder eben gleich QFile - dann wird alles intern korrekt geregelt.
Ich habe seit gestern gar keine Mail bekommen... evtl. der gmx-Spamfilter?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung