【发布时间】: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后缀)。还要确保它们具有相同的位数并由相同的编译器构建。