青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

colorful

zc qq:1337220912

 

wxWidgets中wxString各類型轉換

http://www.cnzui.com/archives/290#std::string_to_wxString

目錄

   附加(數據庫ADO類型):

文本

A literal is a string written in code with "quotes around it". A literal is not a wxString, and (in wxWidgets 2.8) will not be implicitly converted to one. This means that you can never pass in a raw literal into a wxWidget function or method (unless you don't care about your app not building with Unicode-enabled wxWidgets builds)
文本是一個在代碼中被引號包圍的串,文本它不是一個單純的wxString類型,并且(在wxWidgets 2.8中)不能被隱含的轉換為一個wxString類型。這意味著你不能試圖將光禿禿的將一段文本放到wxWidget函數或方法中通過編譯(除非你不在 意你的應用程序是需要在Unicode編碼環境中通過編譯的)。

MessageBox("I'm a mistake!")  // WRONG in WxWidgets 2.8 (OK in 2.9) 

Instead, wxWidgets (prior to wxWidgets 2.9) requires you to use one of these macros to turn literals into wxString-compatible characters:

_("text that can be translated") wxT("text that won't be translated") _T("same as wxT")   char* c = "sometext"; wxT(c) // WRONG, not a literal 

Rather than being a nuisance, the _(), wxT(), and _T() macros take care of some unicode issues and help with internationalization.

char* to wxString

const char* chars = "Hello world"; // assuming your string is encoded as UTF-8, change the wxConv* parameter as needed wxString mystring(chars, wxConvUTF8);

wxString to char*

void my_function(const char* foo) { } ... wxString mystring(wxT("HelloWorld")); // you could give the encoding you want as a parameter to mb_str(), e.g. mb_str(wxConvUTF8) my_function( mystring.mb_str() );

mb_str() 返回一個臨時的指針,如果你需要通過函數得到更多的返回結果(就和上面的情況一樣),你可以臨時保存一下這個字符數據流:

wxString s( wxT("some string") ); wxCharBuffer buffer=s.ToUTF8(); foo( buffer.data() );  // data() returns const char * bar( buffer.data(), strlen(buffer.data()) );  // in case you need the length of the data 

當你真的需要將它復制為char*類型時:

wxString mystring(wxT("HelloWorld")); char cstring[1024]; // assuming you want UTF-8, change the wxConv* parameter as needed strncpy(cstring, (const char*)mystring.mb_str(wxConvUTF8), 1023);

你也可以用ToUTF8(), 因為你得到的編碼比用mb_str()函數從const char*轉換成char*更加清楚。

wxString mystring(wxT("HelloWorld")); (const_cast<char*>((const char*)mystring.mb_str()))

在可變參數的函數 (如printf)中用mb_str()函數將無效,但按以下的方法是有效的:

wxString mystring(wxT("HelloWorld")); printf("%s",mystring.mb_str().data());

做為選擇,使用Potential Unicode Pitfalls中推薦的方法:

printf("%s", (const char*)mystring.mb_str())

wchar_t* to wxString

const wchar_t* chars = L"Hello world"; wxString mystring(chars);

wxString to wchar_t*

請翻閱官方文檔的以下方法:

wxString::wc_str() wxString::wchar_str()

 

wxString to TCHAR

TCHAR tCharString[255]; wxString myString(_T("Hello World")); const wxChar* myStringChars = myString.c_str(); for (int i = 0; i < myString.Len(); i++) {    tCharString[i] = myStringChars [i]; } tCharString[myString.Len()] = _T('\0');

int to wxString

wxString mystring = wxString::Format(wxT("%i"),myint);

或者

wxString mystring; mystring << myint;

float to wxString

wxString mystring = wxString::Format(wxT("%f"), myfloat);

或者

wxString mystring; mystring << myfloat;

wxString to integer number

wxString number(wxT("145")); long value; if(!number.ToLong(&value)) { /* error! */ }

或者

wxString str = _T("123"); int num;   num = wxAtoi(str);

wxString to floating-point number

wxString number(wxT("3.14159")); double value; if(!number.ToDouble(&value)){ /* error! */ }

std::string to wxString

std::string stlstring = "Hello world"; // assuming your string is encoded as UTF-8, change the wxConv* parameter as needed wxString mystring(stlstring.c_str(), wxConvUTF8);

從wxWidgets 2.9開始, 你可以用適當的構造函數:

std::string stlstring = "Hello world"; // assuming your string is encoded as the current locale encoding (wxConvLibc) wxString mystring(stlstring);

wxString to std::string

在wxWidgets 2.8 :

wxString mystring(wxT("HelloWorld")); std::string stlstring = std::string(mystring.mb_str());

在wxWidgets 2.9, 你可以用這個方法

wxString::ToStdString()

std::wstring to wxString

從wxWidgets 2.9開始, 你可以用適當的構造函數:

std::sstring stlstring = L"Hello world"; // assuming your string is encoded as the current locale encoding (wxConvLibc) wxString mystring(stlstring);

wxString to std::wstring

在wxWidgets 2.9, 你可以用這個方法

wxString::ToStdWstring()


附:(數據庫類型)

" src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">wxString 轉 _bstr_t
 

wxString str(wxT("Hello")); _bstr_t mystring=_bstr_t(str.wc_str()); 

" src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">_bstr_ 轉 wxString
_bstr_t bstr="hello"; wxString mystring = wxString(static_cast<const wchar_t *>(bstr)); 

" src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">_variant_t 轉 wxString

_variant_t  varstr=_variant_t("Hello"); wxString mystring=wxString(static_cast<const wchar_t *>(_bstr_t(varstr))); 

" src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">wxString 轉 _variant_t

wxString str(wxT("Hello")); _variant_t myvar=_variant_t(str.wc_str()); 

 

本文翻譯自wxWidgets官方:http://wiki.wxwidgets.org/Converting_everything_to_and_from_wxString

posted on 2013-08-10 09:29 多彩人生 閱讀(4493) 評論(1)  編輯 收藏 引用

評論

# re: wxWidgets中wxString各類型轉換[未登錄] 2014-01-16 22:30 Zero

你好,我看到你研究WX很深入的,我們公司開發用的是WX,有沒興趣來我們公司?我們公司在深圳,有興趣的話,可以聯系我:zeroliql@gmail.com
  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

統計

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲激情在线观看视频免费| 国产欧美日韩免费| 美女尤物久久精品| 亚洲精品中文字幕女同| 国产精品男女猛烈高潮激情| 久久久久久一区二区| 亚洲一级片在线观看| 日韩亚洲国产精品| 99国产精品国产精品久久| 欧美搞黄网站| 亚洲大片免费看| 久久先锋影音av| 美女图片一区二区| 国产欧美大片| 亚洲永久在线| 一区二区三区国产盗摄| 亚洲精品一区二区三区99| 亚洲日本视频| 亚洲欧美日韩在线观看a三区| 一区二区黄色| 一区二区三区久久精品| 宅男精品视频| 欧美影院精品一区| 美女亚洲精品| 久久综合色播五月| 欧美日韩亚洲一区二区三区在线| 国产精品video| 亚洲福利视频网| 亚洲深夜福利在线| 亚洲国产影院| 久久成人免费网| 国产区精品在线观看| 狠狠色综合网| 亚洲免费av电影| 美女精品国产| 久久精品免费观看| 国产区二精品视| 亚洲无吗在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品影视在线观看| 久久久7777| 国外精品视频| 麻豆亚洲精品| 欧美好骚综合网| 在线视频亚洲一区| 在线午夜精品自拍| 国产精品午夜电影| 亚洲欧洲日本在线| 伊人精品在线| 欧美国产免费| 欧美日本一道本| 亚洲欧美激情视频| 欧美一区二区在线免费观看| 国产精品国产三级国产普通话99| 午夜精品福利视频| 久久视频精品在线| 亚洲香蕉成视频在线观看| 亚洲视频欧美在线| 在线观看91精品国产入口| 最新成人在线| 国产综合在线视频| 日韩网站在线看片你懂的| 韩国精品一区二区三区| 亚洲国产成人av| 国产欧美一区二区白浆黑人| 欧美国产成人在线| 国产精品视频不卡| 欧美激情视频一区二区三区在线播放| 欧美xxx成人| 久久久久国产精品厨房| 久久人人爽人人爽| 亚欧成人精品| 欧美成人午夜影院| 一区二区日韩免费看| 亚洲欧美日本在线| 欧美一区二区三区四区在线观看地址| 在线观看日韩av先锋影音电影院| 欧美不卡在线视频| 狠狠色狠狠色综合系列| 一区二区三区国产| 亚洲一区二区精品在线| 欧美精品v日韩精品v国产精品| 猫咪成人在线观看| 久久亚洲精选| 亚洲国产精品一区二区www| 久久精品国亚洲| 久久久精品国产一区二区三区| 欧美日韩视频在线观看一区二区三区| 欧美v亚洲v综合ⅴ国产v| 激情久久婷婷| 欧美 日韩 国产 一区| 亚洲激情啪啪| 欧美一区二区三区在线视频| 国产欧美日韩在线视频| 欧美一区二区视频免费观看| 久久久久久一区二区三区| 国内精品久久久久久久影视麻豆| 欧美中日韩免费视频| 亚洲大胆视频| 久久超碰97中文字幕| 在线播放视频一区| 欧美日韩黄色一区二区| 亚洲欧美国产不卡| 国产亚洲欧美激情| 欧美激情一级片一区二区| 亚洲欧美日韩综合| 亚洲激情网站免费观看| 久久黄色级2电影| 在线视频亚洲| 亚洲高清在线精品| 国产一区二区你懂的| 欧美激情一区在线观看| 一区二区三区高清在线| 亚洲青涩在线| 欧美激情第1页| 久久综合久久综合久久| 香蕉久久一区二区不卡无毒影院| 在线日韩欧美视频| 一区二区在线视频播放| 国产精品毛片大码女人| 欧美 日韩 国产在线| 久久精品综合网| 欧美一级专区| 欧美一区二区三区四区在线观看 | 1000部精品久久久久久久久| 国产亚洲激情在线| 激情91久久| 亚洲精品一区中文| 亚洲精品一区二区网址| 国产精品99久久久久久www| 99re这里只有精品6| 夜夜嗨av一区二区三区| 亚洲一二三区精品| 欧美在现视频| 亚洲国产mv| 亚洲制服av| 欧美二区在线看| 国产日韩欧美一区二区| 在线观看欧美| 亚洲午夜精品福利| 能在线观看的日韩av| 亚洲理论电影网| 久久国产精品久久久| 欧美国产日韩一区二区三区| 欧美小视频在线| 在线视频欧美精品| 欧美成人精精品一区二区频| 日韩网站在线| 欧美高清在线视频| 国产精品国产三级国产普通话三级 | 欧美 日韩 国产一区二区在线视频 | 一区二区三区四区五区在线| 久久影音先锋| 亚洲精品久久久久久久久久久久久| 99ri日韩精品视频| 欧美日韩免费一区二区三区视频| 欧美—级a级欧美特级ar全黄| 国语自产精品视频在线看抢先版结局| 亚洲精品在线观| 亚洲国产视频一区| 欧美成人国产一区二区| 1024欧美极品| 欧美激情亚洲国产| 另类天堂av| 亚洲美女福利视频网站| 欧美高清在线| 亚洲图中文字幕| 亚洲视频欧洲视频| 国产精品热久久久久夜色精品三区| 日韩一级黄色av| 艳女tv在线观看国产一区| 国产精品av一区二区| 亚洲欧美经典视频| 欧美一区二区精品在线| 亚洲国产三级网| 亚洲香蕉伊综合在人在线视看| 国产精品青草综合久久久久99| 欧美亚洲综合网| 免费成人av| 欧美一级艳片视频免费观看| 欧美在线观看天堂一区二区三区| 伊人久久综合| 亚洲主播在线| 一区二区三区精品视频在线观看| 午夜久久电影网| 亚洲国产精品综合| 午夜精品婷婷| 午夜精品亚洲| 欧美午夜精品久久久久久久| 欧美a一区二区| 极品中文字幕一区| 先锋影音网一区二区| 亚洲一区二区三区视频| 欧美激情91| 亚洲黄色一区| 一本在线高清不卡dvd | 一区二区三区国产精华| 欧美一区二区三区免费在线看| 亚洲综合好骚| 国产美女高潮久久白浆|