Seite 1 von 1

QChar in char[] konvertieren.

Verfasst: 30. Oktober 2007 12:34
von LQ
Ich bin hier gerade dabei, Qt mit der WinAPI zu vermischen. die WinAPI benutze ich um direct X zu initialisieren und Qt um verschiedene Sachen aus der registry auszulesen. solange ich mit int-werten gearbeiet habe, war das auch kein problem. aber jetzt muss ich einen path (zub C:\ein ordner\zwei ordner) auslesen.
wenn ich das mit

Code: Alles auswählen

char path[] = read.value("PATH").toChar;
mache, dann sagt er mir, dass QChar nicht in char[] konvertiert werden kann. wenn ich es mit

Code: Alles auswählen

QChar path = read.value("PATH").toChar;
mache, dann meckert er zwar beim auslesen nicht, aber später beid er Verwendung in der WinAPI heisst es auf einmal, QChar nicht in LPSTR konvertiert werden kann.

wie bekomm ich eine zeichenfolge mit qt aus der registry ausgelesen und (meinetwegen über 20 ecken) in LPSTR konvertiert?

Verfasst: 30. Oktober 2007 13:02
von Christian81
Du willst einen string, keinen char!
Entweder QString::toAscii () oder gleich Unicode und QString::utf16 () benutzen.

Verfasst: 30. Oktober 2007 20:33
von LQ
dann meckert er beim kompilieren zwar nicht, dafür bekomm ich aber komische outputs wie "¤" oder "µ". (kommt ddrauf an ob to.Ascii(); oder to.Utf8() verwendet wurde. utf16 funzt ned, da meckert er.

edit: wenn ich versuche QString direkt in LPSTR zu konvertieren (per toUtf8();), sagt er mit, das QByteArray nicht in LPSTR konvertiert werden kann.

Verfasst: 30. Oktober 2007 20:37
von Christian81
Dann würde ich mich einfach mal mit Ansi und Unicode beschäftigen... wenn man mit WinAPI arbeitet sollte man sich darüber auf alle Fälle im klaren sein. Das bei toAscii() keine Sonderzeichen funktionieren sollte ja wohl klar sein.

Verfasst: 30. Oktober 2007 20:58
von LQ
deswegen hab ich es ja mit UTF-8 gemacht. fehlanzeige (siehe edit)

Verfasst: 30. Oktober 2007 21:22
von Christian81
Und was solld as helfen wenn man eine ANSI - Funktion aufruft??
Beschäftige Dich endlich mit ANSI und UNICODE in der WinAPI!

Verfasst: 31. Oktober 2007 11:59
von LQ
kannst du mir nicht einfach sagen, wie man QString oder QChar in LPSTR konvertiert? (unter UNICODE)

Verfasst: 31. Oktober 2007 12:10
von Christian81
Habe ich doch!
QString::utf16() !

Verfasst: 31. Oktober 2007 13:39
von LQ
danke es klappt. (scheiss tippfehler....)