downup 发表于 2011-02-14 14:42

在windows下的QT编程中的_TCHAR与QString之间的转换

由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef UNICODE

#define QStringToTCHAR(x)   (wchar_t*) x.utf16()

#define PQStringToTCHAR(x)    (wchar_t*) x->utf16()

#define TCHARToQString(x)   QString::fromUtf16((x))

#define TCHARToQStringN(x,y)QString::fromUtf16((x),(y))

#else

#define QStringToTCHAR(x)   x.local8Bit().constData()

#define PQStringToTCHAR(x)    x->local8Bit().constData()

#define TCHARToQString(x)   QString::fromLocal8Bit((x))

#define TCHARToQStringN(x,y)QString::fromLocal8Bit((x),(y))

#endif

coblan 发表于 2011-03-17 04:42

QT确实很爽啊。。这里调用的所有转换函数都是用的QT的。。:lol:

nizvoo 发表于 2011-03-19 17:24

QString 直接支持wchar_t的构造。

QString str((const QChar*)wchar_str, wcslen(wchar_str));
页: [1]
查看完整版本: 在windows下的QT编程中的_TCHAR与QString之间的转换