HeMason wrote:samsam598 wrote:HeMason wrote:
{
wxChar *p= &text[0] ;
}
这个有点怪怪的。
是怪怪的。
所以小弟才說,這是以前在用C的概念。
好像應該用 test.c_str() 才對,但是怎麼不行呢?
1.wxCStrData wxString::c_str ( ) const
Returns a lightweight intermediate class which is in turn implicitly convertible to both const char* and to const wchar_t*.
2.const wxCharBuffer wxString::mb_str ( const wxMBConv & conv = wxConvLibc ) const
Returns the multibyte (C string) representation of the string using conv's wxMBConv::cWC2MB method and returns wxCharBuffer.
第二个方法默认参数下返回为const char*
显然你至少有两个方案可行:
一是用text.mb_str():
Code: Select all
const char* p=text.mb_str();
printf("%c\n",*++p);// prints 'h'
二是用(const char*)text.c_str():
Code: Select all
const char* p=(const char*)text.c_str();
printf("%c\n",*++p);// prints 'h' also.
请进一步参阅wxString文档下的Conversions functions
一节,另有数种方法均可达到目的,只不过所关注的细节各有不同而已。