【问题标题】:QString::fromStdString crash (c++)QString::fromStdString 崩溃 (c++)
【发布时间】:2013-11-13 08:14:42
【问题描述】:

我正在尝试使用 QString::fromStdString 将 std::string 转换为 QString

#include <string>
using namespace std;

#include <qtcore/qstring>

int main() {
    string s = "111";
    QString ss = QString::fromStdString(s);
    return 0;
}

简单的代码抛出异常并崩溃,使用vs2010调试时,调用堆栈充满了msvcr100d.dll,kernel32.dll,ntdll.dll,没有任何帮助。 我正在使用 win7_32bit + QT 5.1.1 + vs2010

有什么想法吗? 谢谢。

【问题讨论】:

  • 在一个不相关的说明中:当从main返回时,如果一切正常,通常返回0,如果有错误则返回正值。
  • 除了头文件(你真的应该展示完整的程序,包括头文件包含),问题中的确切程序是否会导致崩溃发生?
  • documentation: This constructor is only available if Qt is configured with STL compatibility enabled.
  • 源代码更新为完整程序,不包含其他内容。我可以确认带有 fromStdString 的行会导致崩溃,当我尝试在调试模式下跨过该行时会导致崩溃。
  • 确保在调试项目中不要使用发布的 Qt 库(没有d 后缀)。还要确保它们具有相同的位数并由相同的编译器构建。

标签: c++ string qt std


【解决方案1】:

@ixSci,就是这样,我正在使用发布的 qt 库,在库中添加“d”后它可以工作。

【讨论】:

  • 您如何配置项目以使用 Qt 库的 RELEASE 版本进行 RELEASE 构建(反之亦然)。
猜你喜欢
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2019-10-24
相关资源
最近更新 更多