QString->string->wstring->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

http://www.cnblogs.com/luoxiang/p/5456173.html

时间: 2024-10-14 07:04:29

QString->string->wstring->LPCWSTR的相关文章

QString, string, int, char* 之间相互转换

这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序员抱怨Qt非要整个自己的QSD,为啥不直接支持STD,但是我想说某些时候QST完全可以替代STD,就算不想完全替代,Qt也提供了完整而强大的相互转换的函数,下面我们先来看Qstring和string的相互转换. // string to QString std::string s = "hello

实战c++中的string系列--string到LPCWSTR的转换

今天再来介绍一下如何从string到LPCWSTR的转换. LPCWSTR是什么类型呢? 看看如何定义的: typedef const wchar_t* LPCWSTR; 顾名思义就是: LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型. 比如说MessageBoxW的第二.第三个参数就是LPCWSTR类型. `MessageBoxW(__in_opt HWND hWnd, __in_opt LPCWSTR lpText, __in_op

string wstring

// 只扩展为wstring,不考虑编码 std::wstring String2WString(const std::string &str) { std::wstring wstr(str.length(), L' '); std::copy(str.begin(), str.end(), wstr.begin()); return wstr; } // 只拷贝低字节至string中 std::string WString2String(const std::wstring &wstr

QString转换成LPCWSTR

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

string&wstring相互转换(CH&EN)2

C++的locale框架比C更完备.C++除了一个笼统本地策略集locale,还可以为locale指定具体的策略facet,甚至可以用自己定义的facet去改造一个现有的locale产生一个新的locale.如果有一个facet类NewFacet需要添加到某个old_loc中形成新new_loc,需要另外一个构造函数,通常的做法是: std::locale new_loc(old_loc, new NewFacet); 标准库里的标准facet都具有自己特有的功能,访问一个locale对象中特定

c++中char*\wchar_t*\string\wstring之间的相互转换

最近在编程中经常遇到需要多字节字符与宽字节字符相互转换的问题,一直自己贴那几句代码.觉得麻烦,于是就自己写了一个类来封装wchar_t与char类型间的转换, 其他的,诸如:CString\ LPWSTR\TCHAR   CHAR\LPSTR之间也是一样用 头文件: #ifndef USE_H_ #define USE_H_ #include <iostream> #include <windows.h> #include <string> using namespac

C++的中英文字符串表示(string,wstring)

在C++中字符串类的string的模板原型是basic_string template <class _Elem, class traits = char_traits<_Elem>, class _Ax = allocator<_Elem>>class basic_string{}; 第一个参数_Elem表示类型.第二个参数traits的缺省值使用char_traits类型,定义了类型和字符操作的函数,如比较.等价.分配等.第三个参数_Ax的默认值是allocator

string 转 LPCWSTR

virtual BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount ); BOOL TextOut( int x, int y, const CString& str ); WM_LBUTTONDOWN: { hdc = BeginPaint(hWnd, &ps); UINT x = lParam; UINT y = wParam; //LPSTR info; //sprintf(info, "(%d, %d)&q

C++中string,wstring,CString的基本概念和用法

一.概念 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中.wstring是操作宽字符串的类.C++标准程序库对于string的设计思维就是让他的行为尽可能像基本类型,不会在操作上引起什么麻烦. CString是对string(字符串)和wstring(宽字符串)的一个封装,常用在mfc中.用来解决编码问题的. string/wstring和CString在使用中,要根据实际环境选取.CString是MFC里的,string是

C++中Cstring、wstring 和string互相转换总结

通过前一篇文章<C++中string,wstring,CString的基本概念和用法>,对Cstring.wstring 和string有了一个了解.string是C++提供的标准字符串操作类.wstring是操作宽字符串的类..CString是对string(字符串)和wstring(宽字符串)的一个封装,常用在mfc中,用来解决编码问题的.在编程过程中,经常会遇到Cstring.wstring 和string之间的相互转换,在这里做了个简单地总结,另外也会附上其他类型的转换.常见的转换方式