之前多次出現這個問題,后來解決之后再出現就忘了怎么弄了,這次記錄一下。
我這幾次出現這種錯誤都是因為在Qt中將QString轉const char* 時出現的。我的做法是有一個函數ToString()轉為std::string
1 std::string MyProcessObject::ToString(QString strRaw) 2 { 3 return std::string((const char *)strRaw.toLocal8Bit()); 4 }
這么做是因為有時候會有中文路徑問題。
然后每次在需要傳入const char* 時我都是 ToString(QString).c_str(),這樣直接傳參就會出現錯誤。解決方法是:
string str=ToString(QString);
之后傳入 str.c_str()就可以了,具體原因還不清楚。
