【发布时间】:2014-05-15 10:21:33
【问题描述】:
在 Qt 4 中,可以自动将 QString 转换为“const char *”,例如我可以将 QString 传递给期望“const char *”的函数。
void myFunction(const char *parameter);
QString myString;
myFunction(myString); //works in QT4
然而,在 Qt 5 中,我会得到一个“错误 C2440: 'type cast' : cannot convert from 'QString' to 'const char *'”(这是 Visual C++ 2008 编译器,其他编译器会抛出类似的东西)。如果我正确理解文档,那是因为 Qt 3 兼容层不再包含在 QT5 中。
当然,我可以更改函数调用
myFunction(myString);
到
myFunction(myString.toLatin1().data());
但是,我有一个庞大的代码库,可以用 Qt 4 很好地编译,我真的很想用 Qt 5 编译我的旧代码而不用修改它。有什么方法可以实现吗?
【问题讨论】:
标签: c++ qt4 qt5 qstring qtcore