之前多次出现这个问题,后来解决之后再出现就忘了怎么弄了,这次记录一下。
我这几次出现这种错误都是因为在Qt中将QString转const char* 时出现的。我的做法是有一个函数ToString()转为std::string
1 std::string MyProcessObject::ToString(QString strRaw) 2 { 3 return std::string((const char *)strRaw.toLocal8Bit()); 4 }
ToString()
这么做是因为有时候会有中文路径问题。
然后每次在需要传入const char* 时我都是 ToString(QString).c_str(),这样直接传参就会出现错误。解决方法是:
string str=ToString(QString);
之后传入 str.c_str()就可以了,具体原因还不清楚。
时间: 2024-12-29 11:45:19