wxWidgets - 错误:从'wxCStrData'转换为非标量类型'std :: string {aka std :: basic_string <char>}''</char>

时间:2014-10-05 22:47:37

标签: type-conversion wxwidgets

在我的项目中,我尝试使用以下行来获取字符串值:

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

但它不起作用,这也不是:

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

错误:转换自&#39; wxCStrData&#39;到非标量类型&#39; std :: string {aka std :: basic_string}&#39;请求的

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

欢迎提出任何意见和建议, 提前致谢

1 个答案:

答案 0 :(得分:1)

c_str()会返回一个可转换为const char*const wchar_t*的多态对象,因此如果不明确,您需要选择您需要的内容。但是在这种情况下,您可以通过

完全避免这种歧义
std::string azonosito(ItemID->GetLabelText().c_str());

或者更清楚地说,

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