Seite 1 von 1
[gelöst] QString zu LPCTSTR konvertieren?
Verfasst: 25. Juni 2007 21:14
von Burgpflanze
Wie geht das?
Ich brauche das, weil die Windows-API-Funktion FindWindow() LPCTSTR erwartet.
Verfasst: 25. Juni 2007 21:47
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
Verfasst: 25. Juni 2007 22:44
von Burgpflanze
Besten Dank! Funkioniert!
Verfasst: 25. Juni 2007 23:34
von Christian81
Burgpflanze hat geschrieben:Besten Dank! Funkioniert!
Aber ggf. fehleranfällig und eine Konvertierung zu viel... QString::utf16() und fertig.
Verfasst: 26. Juni 2007 02:13
von Burgpflanze
Christian81, dein Vorschlag funkioniert nicht, FindWindow() findet dann das Fenster nicht.
Verfasst: 26. Juni 2007 09:11
von Christian81
Dann machst du was falsch

FindWindowW((LPCWSTR)className.utf16(),(LPCWSTR)name.utf16())
Verfasst: 26. Juni 2007 11:42
von Burgpflanze
Hättest du auch gleich dazu schreiben können, das ich dann FindWindow
W nehmen muss

Verfasst: 26. Juni 2007 11:54
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