Seite 1 von 1

LPCTSTR in QString umwandeln

Verfasst: 23. November 2010 15:48
von darkshine
Gibt es eine Möglichkeit LPCTSTR in einen QString umzuwandeln?

QString string = QString("\n %1").arg(alterstring.operator LPCTSTR());

Dieses Funktioniert leider nicht :(

Verfasst: 23. November 2010 16:16
von Christian81

Verfasst: 23. November 2010 16:19
von softwaremaker
LPCTSTR ist folgendermaßen definiert:

Code: Alles auswählen

#ifdef UNICODE
 typedef LPCWSTR LPCTSTR;  // = CONST WCHAR * (unicode 16-bit)
#else
 typedef LPCSTR LPCTSTR;  // = CONST CHAR *
#endif
compilierst du als unicode dann würde ich so machen:
QString neu = QString::fromWCharArray( alt );
bei nicht unicode ist es ein char*
QString::fromLocal8Bit oder QString::fromLatin1

gebe aber keine Garantie für Richtigkeit :lol:

Verfasst: 24. November 2010 07:52
von darkshine
Es hat geklappt

Vielen vielen Dank

Verfasst: 25. November 2010 14:45
von RHBaum
Es hat geklappt
und wie genau hasst es nu geloest ?

Denk die sauberste Methode waere ne Convertfunktion / oder Template was auch auf Praeprozessorflags hoert :-)
Falls Du mal auf unicode umstellst, willst doch nix im Quelltext ändern ?

Code: Alles auswählen

inline QString convert(LPCTSTR str)
{
#ifdef _UNICODE 
    return QString::fromWCharArray(str);
#else
    return QString::fromAscii(str);
#endif 
}
Ciao ...