• 11726阅读
  • 2回复

QString toStdString()错误 [复制链接]

上一主题 下一主题
离线shakespark
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-05
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
我下面的语句是从lineEdit中读取到对应的Qstring(执行成功),并转换为标准string(执行失败,显示异常)
ui.prnamelineEdit->text().toStdString();
显示异常后转到
inline QString::~QString() { if (!d->ref.deref()) free(d); }

inline bool QBasicAtomicInt::deref()
{
    return _InterlockedDecrement(reinterpret_cast<volatile long *>(&_q_value)) != 0;
}
请问这是为什么?
离线shakespark
只看该作者 1楼 发表于: 2008-11-05
问了群里热心人了,已解决。
toStdString()不好使,改用toLocal8Bit().data()直接转为char*
离线cf841226

只看该作者 2楼 发表于: 2010-05-24
谢谢楼主的答案,那么为什么toStdString不好用呢?我看帮助文档中说If the QString contains non-ASCII Unicode characters, using this operator can lead to loss of information.是不是说如果QString中有非ascii的字符就会导致转换失败呢?那QSring中要全部是中文的时候呢?
快速回复
限100 字节
 
上一个 下一个