1. 程式人生 > >QString與std::wstring的轉換問題

QString與std::wstring的轉換問題

問題描述:

在qt工程中呼叫QString::fromStdWString()時,老是報錯error LNK2019: 無法解析的外部符號...QString::fromStdWString(...)...

原因:

在Qt庫中 wchar_t 不是內建型別,所以QT建議我們構建基於Qt的軟體時,也不要將wchar_t作為內建型別。但是在一些情況下,其他的庫構建時可能已經將wchar_t作為了內建型別。當使用std::wstring、QString::toStdWString()和String::fromStdWString() 將導致連結錯誤.

解決方案:

QString轉成std::wstring:

/*! Convert an QString to a std::wstring */
std::wstring qToStdWString(const QString &str)
{
#ifdef _MSC_VER
 return std::wstring((const wchar_t *)str.utf16());
#else
 return str.toStdWString();
#endif
}

std::wstring轉成QString:

/*! Convert an std::wstring to a QString */
QString stdWToQString(const std::wstring &str)
{
#ifdef _MSC_VER
 return QString::fromUtf16((const ushort *)str.c_str());
#else
 return QString::fromStdWString(str);
#endif
}

相關推薦

QStringstd::wstring轉換問題

問題描述: 在qt工程中呼叫QString::fromStdWString()時,老是報錯error LNK2019: 無法解析的外部符號...QString::fromStdWString(...)... 原因: 在Qt庫中 wchar_t 不是內建型別,所以QT建議

寬字元(unicode)和多位元組的轉換std::stringstd::wstring轉換

#include <string> #include <windows.h> using namespace std; //Converting a WChar string to a Ansi string std::string W

std::stringstd::wstring互相轉換

ret bst csdn 文章 result del set size_t amp 作者:zzandyc來源:CSDN原文:https ://blog.csdn.net/zzandyc/article/details/77540056 版權聲明:本文為博主原創文章,轉載請附

Qt中QString基本型別的轉換問題

之前寫過幾篇文章,後來由於部分原因刪除掉了,最近剛好希望在Qt方面寫一點東西,方便大家查詢,也希望大家可以相互關注,多做交流,我會堅持在今後的Qt的工作學習中,不斷地更新遇到的技術問題與Qt的一些基礎

QStringString相互轉換

QString qstr = QString::number(123); int i = atoi(qstr.toStdString().c_str()); 也可以這樣:int i = atoi(qstr.ascii()); ---------------------------------QSti

QString int直接的轉換

1)QString轉int 直接呼叫toInt()函式 QString str = “100”; int tmp = str.toInt(); 2)int轉QString 直接呼叫QString::number()方法就ok; 例: int tmp = 100;

C++字串的型別轉換std::string, std::wstring, c-string)

一、std::string與std::wstring共有篇(c++11新添) 1)string(wstring) to numerical value | string(wstring)轉化成數值

Qt5學習記錄:QStringint值互相轉換

1)QString轉int 直接呼叫toInt()函式 例: QString str("100"); int tmp = str.toInt(); 或者: bool ok; QString str("100"); int tmp = str.toInt(&

QString 其他格式相互轉換

QSting 檔案在Qt中是不能通過加斷點來進行除錯顯示的,如果想讀取其中的數值,這個就需要將它轉換成其他的格式來進行顯示。 QString與string相互轉換 string s = qstr.toStdString(); QString qstr

Qt學習之QStringstring的相互轉換

#ifndef GLOBAL_H_CSX #define GLOBAL_H_CSX #include <string> #include <QString> using namespace std; extern QString g_layout;

QStringchar *的相互轉換

 注:如下方法應該是qt3.0的,一些方法大同小異,請參考qt4的類文件說明。 How can I convert a QString to char* and vice versa ?(trolltech) Answer:In order to convert a QString to a char*,

QStringchar *之間的轉換

1.QString轉char * 先將QString轉換為QByteArray,再將QByteArray轉換為char *。 注意:不能用下面的轉換形式char *mm = str.toLatin1().data();。因為這樣的話,str.toLatin1()得到的QByteArray型別結果就不能儲存,最

qt中QStringStringint,double,char*之間的轉換

本文介紹的是Qt 各種資料型別轉換,病沒有多少內容,只是例項操作了一下,多多參考!如果你是初學者的話。在程式設計的過程中,總是不斷的去轉換資料型別。先來看看內容。 1、QString --> string QString.toStdString(); 2、string --> QString

QStringLPCWSTR 帶中文的相互轉換

這個問題困擾了我一週,記錄一下以免忘了! QString wlpstr = QString::fromLocal8Bit("中國我愛你!"); std::wstring wlpstr = m_findStr.toStdWString(); LPCWSTR lpcwStr

沒有躲過的坑--wstringstring的轉換

wstring 是指的寬位元組。 typedef basic_string<char> string; typedef basic_string<wchar_t> wstring; 在實際工程中,我們往往需要把string轉換為w

Qt5學習記錄(1):QStringint值互相轉換

1)QString轉int 直接呼叫toInt()函式 例: QString str("100"); int tmp = str.toInt(); 或者: bool ok; QString str("100"); int tmp = str.toInt(&ok)

轉:Java中Stringbyte[]的轉換

輸出字符串 單個字符 linu 編輯 繁體 中國人 對象 本質 計算機基礎知識 String s = "fs123fdsa";//String變量 byte b[] = s.getBytes();//String轉換為byte[] String t = new Stri

C++重載運算類型轉換 整理筆記

img 運算 log logs alt 分享 jpg 技術 筆記 C++重載運算與類型轉換 整理筆記

變量,數據類型類型轉換

浮點 變量名 類型轉換 浮點型 整型 引號 格式 unicode編碼 十進制 目標:掌握java基礎語法知識 1變量 變量即變化中的量,變量中的值是變化的,在java中,使用變量時需要聲明變量,在聲明變量時需要聲明變量名,變量名必須是一個以字母開頭的由字母或數字構成的序列,

將字典轉換成變量, 字符串列表相互轉換

div 變量 pda span locals split blog nbsp tr1 將字典轉換成變量: >>> locals().update({‘a‘:1,‘b‘:2}) >>> a 1 >>> b 2 字符串與