【问题标题】:wxWidgets - error: conversion from 'wxCStrData' to non-scalar type 'std::string {aka std::basic_string<char>}' requestedwxWidgets - 错误:请求从“wxCStrData”转换为非标量类型“std::string {aka std::basic_string<char>}”
【发布时间】:2014-10-05 22:47:37
【问题描述】:

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

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

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

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

错误:请求从“wxCStrData”转换为非标量类型“std::string {aka std::basic_string}”

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

欢迎任何 cmets 和提示, 提前致谢

【问题讨论】:

    标签: type-conversion wxwidgets


    【解决方案1】:

    c_str() 返回一个可转换为const char*const wchar_t* 的多态对象,因此如果出现歧义,您需要选择您真正需要的内容。但是在这种情况下,您可以通过这样做来完全避免这种歧义

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

    或者,更清楚的是,

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

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2021-09-16
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      相关资源
      最近更新 更多