QString转LPCWSTR

QFileInfo info("./records.db");
std::string str = info.absoluteFilePath().toStdString(); //将QString转换为string
std::wstring wstr(str.length(), L‘ ‘);  //初始化宽字节wstr
std::copy(str.begin(), str.end(), wstr.begin());  //将str复制到wstr
LPCWSTR path = wstr.c_str();  //将wstr转换为C字符串的指针,然后赋值给path

转换过程:QString->string->wstring->LPCWSTR

时间: 2024-08-09 00:16:05

QString转LPCWSTR的相关文章

qt 获取系统磁盘空间大小

quint64 getDiskFreeSpace(QString driver) { LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16(); ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes; if( !GetDiskFreeSpaceEx( lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTot

QString转换成LPCWSTR

不知道大家用QT做什么程序,但应该还是Windows程序居多吧,仍免不了与WINAPI打交道.这就要求数据类型要与Windows一致,而QT的数据类型却是自成一体的.这就需要转换.比如我用到了LogonUser函数,其原型是: BOOL LogonUser( _In_      LPTSTR lpszUsername, _In_opt_  LPTSTR lpszDomain, _In_opt_  LPTSTR lpszPassword, _In_      DWORD dwLogonType,

【转】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(); //

PyQt QString 与 Python str&amp;unicode

昨日,将许久以前做的模拟网页登录脚本用PyQt封装了一下,结果出大问题了, 登录无数次都提示登录失败!!而不用PyQt实现的GUI登录直接脚本登录无数次都提示登录成功!!心中甚是伤痛,于是探究起来,解决这一问题. 问题描述及证据如下: 上图是脚本MD5加密过程及结果 上图是PyQt GUI中获取密码框内容后加密的结果,其实现代码如下: # -*- coding: gbk -*- ''' Version : Python27 Author : Spring God Date : 2013-6-28

在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:

QString与中文,QString与std::wstring的相互转换(使用fromStdWString和u8关键字)

Qt版本:5.5.1 Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接.例如,像 ? 1 QString str("死亡使者赛维"); 这样直接用带中文的字符串进行构造,那么用QMessageBox显示str时将出现乱码.如果使用fromLocal8Bit.fromLatin1这样的函数,又依赖本地计算机的显示语言,所以它们不是好方法. 显式地使用宽字符(wchar_t)或UTF-8才是好方法. ? 1 2 QString str0(QString::fro

QString 和 TCHAR 的相互转换

参考资料: http://www.cnblogs.com/fuyanwen/p/3200536.htmlhttp://www.cnblogs.com/wendao/archive/2012/07/27/2612597.html 不能直接用: QString szqFileName = QString::fromLocal8Bit("data");const char* szName = szqFileName.toLocal8Bit().constData(); // 返回的 QByt

xcode调试打印QString

xcode内置GDB,在调试工程过程中可以通过print命令打印基本的数据类型,但像QString这样复杂类型就不行了.虽然我们可以在程序代码通过添加Qt的调试打印语句qDebug()<<“debug strText:”<<strText 等方式查看对应的QString值,但这样在调试过程中,显然很不方便.幸好,gdb提供了扩展功能,可以自定义宏命令方式,把自定义的命令放到$HOME/.gdbinit文件中,每次启动gdb时就可以自动加载了,下面的代码是从网上摘录的: define

QString够绕的

多读几篇,每篇取几句精华加深我对QString的理解. ------------------------------------------------------------------ QString内部仍采用UTF-16存储数据且不会改变,但它读char*的时候(C++语言里最常见的形式,特别对于const来说是这样),默认按照latin1来解读字符串,这就造成乱码. QString的成员函数知道按照何种编码来处理 C 字符串QString QString::fromAscii ( con