wxWidgets中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编码环境中通过编译的)。

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

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

char* to wxString

wxString to char*

mb_str() 返回一个临时的指针,如果你需要通过函数得到更多的返回结果(就和上面的情况一样),你可以临时保存一下这个字符数据流:

当你真的需要将它复制为char*类型时:

你也可以用ToUTF8(), 因为你得到的编码比用mb_str()函数从const char*转换成char*更加清楚。

在可变参数的函数 (如printf)中用mb_str()函数将无效,但按以下的方法是有效的:

做为选择,使用Potential Unicode Pitfalls中推荐的方法:

wchar_t* to wxString

wxString to wchar_t*

请翻阅官方文档的以下方法:

 

wxString to TCHAR

int to wxString

或者

float to wxString

或者

wxString to integer number

或者

wxString to floating-point number

std::string to wxString

从wxWidgets 2.9开始, 你可以用适当的构造函数:

wxString to std::string

在wxWidgets 2.8 :

在wxWidgets 2.9, 你可以用这个方法

std::wstring to wxString

从wxWidgets 2.9开始, 你可以用适当的构造函数:

wxString to std::wstring

在wxWidgets 2.9, 你可以用这个方法


附:(数据库类型)

wxString 转 _bstr_t
 


_bstr_ 转 wxString

_variant_t 转 wxString

wxString 转 _variant_t

 

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



郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/290