2014-10-05 48 views
0

在我的项目中我尝试使用下面一行来获取字符串值:wxWidgets - 错误:从'wxCStrData'转换为非标量类型'std :: string {aka std :: basic_string <char>}'要求

string azonosito=ItemID->GetLabelText().c_str(); 

,但它不工作,这确实也不:

string tipus=CategoryFilter->GetString(CategoryFilter->GetCurrentSelection()).c_str(); 

错误:转换,从 'wxCStrData' 非标量型“的std :: string {又名性病:: basic_string的} '要求

我使用Code :: Blo cks 13.12和wxWidgets TDM 4.8.1。,但是这个Code :: Blocks可以完全执行一个使用完全相同的转换方法编写的旧版wxWidgets项目。 可能是什么问题?

任何意见和建议,欢迎, 在此先感谢

回答

1

c_str()返回一个多态对象转换为任何const char*const wchar_t*,因此,在不确定性的情况下,您需要选择究竟你需要的。然而,在这种情况下,你完全可以通过做

std::string azonosito(ItemID->GetLabelText().c_str()); 

避免这种不确定性,或者更明确地,

std::string azonosito(ItemID->GetLabelText().ToStdString()); 
相关问题