QString转换为LPTSTR(使用reinterpret_cast)

本文探讨了在QT环境中如何使用reinterpret_cast将QString类型转换为LPTSTR。同时,还介绍了QString与其他字符类型如wchar_t *, TCHAR以及CString之间的转换方法。参考链接提供了更多详细信息。" 54426923,5821195,浏览器兼容性处理:实现辅助线跟随鼠标移动,"['前端开发', 'JavaScript', '浏览器差异', 'DOM操作']
摘要由CSDN通过智能技术生成
QString str = "CPU";  
const wchar_t * str_cpu = reinterpret_cast<const wchar_t *>(str.utf16());//char * 转换为 wchar_t * 类型  

  QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化

//QString to wchar_t *:  
const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileName.utf16());  
  
//QString to char * given a file name:  
QByteArray fileName = QFile::encodeName(aFileName);  
const char * encodedName = fileName.constData(); //Valid as long as fileName exists  
  
//QString to char * (general case):  
const char * tmp = str.toUtf8().constData();  
[/code]  
Windows 数据类型: http://msdn.microsoft.com/en-us/library/aa383751.aspx  
[code lang="cpp"]  
//TCHAR:  
#ifdef UNICODE  
typedef wchar_t TCHAR;  
#else  
typedef char TCHAR;  
#endif  
  
//LPCTSTR:  
#ifdef UNICODE  
typedef LPCWSTR LPCTSTR;  
#else  
typedef LPCSTR LPCTSTR;  
#endif  
  
//LPCSTR:  
typedef const char * LPCSTR;  
  
//LPCWSTR:  
typedef const wchar_t * LPCWSTR;  
  
//LPCWSTR to QString:  
QString text(QString::fromUtf16(reinterpret_cast<const unsigned short *>(tmp)));  
另一种解决办法是使用QString::fromWCharArray(),但这个函数可能导致一些尚未解决的wchar_t符号问题。  
  
最佳的编程风格: 使用L来定义wchar_t宽字符串,比如 L"text" 字义了一个UNICODE字符串"text"。  
  
今天又看到一个文章,关于字符串之间的转换,比较全面,在此将英文翻译并整理一下。  
原文地址:http://hi.baidu.com/koko200147/blog/item/7e3cad828c9b9bb66d8119cb.html  
  
QString与其他字符类型之间的转换,QString在Qt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值