【发布时间】:2010-02-25 10:45:59
【问题描述】:
我有一个 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。
谁能告诉我为什么会发生这种情况,以及如何避免这个运行时错误?
(在其他线程中,有些人讨论了调试库和发布库的混合,但我认为我没有这样做。顺便说一句,如何找出?)
【问题讨论】:
标签: destructor runtime-error stdstring qstring