我有一个 Qt 应用程序,它使用另一个库,其中函数输出是 std::string 而不是 QString。
所以在我的程序中我有一个方法
void doSomething() {
...
std::string std_string = MyExternalLibraryThatReturnsSTLstring.getString();
QString myQString = QString::fromStdString(std_string);
...
process(myQString);
...
}
当我的外部库返回非空 std::string 时,一切正常。但是当返回一个空的 std::string 时,应用程序会在范围结束时崩溃。我猜这与 std::string 对象(?)的破坏有关。
到 QString 的转换工作正常,即使是空的 std::string。
有人能告诉我为什么会发生这种情况,以及如何避免这个运行时错误吗?
(在其他线程中,有些人讨论了调试和发布库的混合,但我认为我没有这样做。如何找出 btw?)