QString::fromStdString 崩溃 (c++)

Posted

技术标签:

【中文标题】QString::fromStdString 崩溃 (c++)【英文标题】:QString::fromStdString crash (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 后缀)。还要确保它们具有相同的位数并由相同的编译器构建。 【参考方案1】:

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

【讨论】:

您如何配置项目以使用 Qt 库的 RELEASE 版本进行 RELEASE 构建(反之亦然)。

以上是关于QString::fromStdString 崩溃 (c++)的主要内容,如果未能解决你的问题,请参考以下文章

Qt Qstring与c++标准string 的转化

QString与string互转以及显示中的乱码问题

各类字符串转换

qt QTextStream 写入文件 中文乱码

qt QTextStream 写入文件 中文乱码

开发过程中遇到的崩溃信息及原因,崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃