[gelöst] QString zu LPCTSTR konvertieren?

Alles rund um die Programmierung mit Qt
Antworten
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

[gelöst] QString zu LPCTSTR konvertieren?

Beitrag von Burgpflanze »

Wie geht das?
Ich brauche das, weil die Windows-API-Funktion FindWindow() LPCTSTR erwartet.
Zuletzt geändert von Burgpflanze am 25. Juni 2007 22:45, insgesamt 1-mal geändert.
Gruß, Peter
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

sorry ich kann es jetzt hier nicht probieren und weiss, dass es wahrscheinlich einfacher geht, aber ich habs mal ungefähr so gemacht glaub ich (bin nicht mehr ganz sicher) :

Code: Alles auswählen

#include <string>
#include <QString>
#include <windows.h>

QString qstr = "dies ist ein string";

LPCTSTR lpctstr( qstr.toStdWString().c_str() );
einfach mal ausprobieren.
ich habe das mit dem visual studio 2005 ee gemacht und musste, damit dabei keine fehlermeldung rauskam, die unicode-unterstützung für das projekt anschalten.

mfg,
julian
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Besten Dank! Funkioniert!
Gruß, Peter
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Burgpflanze hat geschrieben:Besten Dank! Funkioniert!
Aber ggf. fehleranfällig und eine Konvertierung zu viel... QString::utf16() und fertig.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Christian81, dein Vorschlag funkioniert nicht, FindWindow() findet dann das Fenster nicht.
Gruß, Peter
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann machst du was falsch :)
FindWindowW((LPCWSTR)className.utf16(),(LPCWSTR)name.utf16())
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Hättest du auch gleich dazu schreiben können, das ich dann FindWindowW nehmen muss :roll: :wink:
Gruß, Peter
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

FindWindowA -> Ansi version
FindWindowW -> Unicode version
FindWindow -> je nach Definition entweder A oder W, und da Du mit Qt arbeitest dachte ich es wird die W-Version genommen was aber (komischer Weise) nicht der Fall ist.

Die A-Versionen sind deprecated - Windows-intern wird alles in Unicode gehandelt
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten