通常,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()。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.