QString转换为std::string程序异常

通常,QString转换为std::string,我们使用

toStdString()

例如:

QString ss( "test" );

std::string s = ss.toStdString();

可是有些情况发生异常,我这边发生异常是因为我的运行时库是静态然后Qt使用动态库,导致这个问题。



方法也有很多种
QString str="test";
QByteArray ba = str.toLatin1()
char* ch = ba.data();
注意:在调用QByteArray.data()之前,必须要先显示储存这个bytearray。像这样const char *ch = str.toLatin1().data();会使程序崩溃,因为QByteArray没有被储存,调用data()前是不存在的,必须先显式调用一次toLatin1(),再调用data()。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:
CategoriesQT

留言

你的邮箱是保密的 必填的信息用*表示