我有一個Qt應用程序,它使用另一個函數輸出爲std :: string而不是QString的庫。與Qt使用std :: string會導致破壞時的運行時錯誤
所以在我的節目,我有一個方法
void doSomething() {
...
std::string std_string = MyExternalLibraryThatReturnsSTLstring.getString();
QString myQString = QString::fromStdString(std_string);
...
process(myQString);
...
}
當我的外部lib中返回一個不空的std :: string一切工作正常。 但是,當返回一個空的std :: string時,應用程序在作用域的末尾崩潰。我猜想,這與破壞std :: string對象(?)有關。
即使使用空的std :: string,轉換爲QString也能正常工作。
有人可以告訴我爲什麼發生這種情況,以及如何避免這種運行時錯誤?
(在其他線程一些人討論調試的混合和釋放庫,但我不認爲我已經做到了。如何找出BTW?)
好的.. 我這樣做,它只使用標準的Qt庫+我的external.dll,它再次使用了很多東西。我真的不知道這裏是否有什麼不對,但看起來不像。 – Magus