Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将qt3库完全移植到qt4?_C++_Visual Studio 2008_Qt_Visual C++ - Fatal编程技术网

C++ 如何将qt3库完全移植到qt4?

C++ 如何将qt3库完全移植到qt4?,c++,visual-studio-2008,qt,visual-c++,C++,Visual Studio 2008,Qt,Visual C++,我一直在跌跌撞撞地通过一些不同的步骤来做到这一点。我在有编译错误的文件上运行了qt3to4.exe,完成了许多转换步骤,但是现在我遇到了以下错误: 1>c:\qt\4.7.0\src\qt3support\widgets\q3toolbar.h(64):错误C2039:“ToolBarDock”:不是 “Qt”的成员 以及其他55个类似错误。这让我很困惑,因为它在qt自己的q3support库中。我还在QT帮助页面上看到(http://doc.trolltech.com/4.2/qt-qt3.h

我一直在跌跌撞撞地通过一些不同的步骤来做到这一点。我在有编译错误的文件上运行了qt3to4.exe,完成了许多转换步骤,但是现在我遇到了以下错误:
1>c:\qt\4.7.0\src\qt3support\widgets\q3toolbar.h(64):错误C2039:“ToolBarDock”:不是
“Qt”的成员
以及其他55个类似错误。这让我很困惑,因为它在qt自己的q3support库中。我还在QT帮助页面上看到(http://doc.trolltech.com/4.2/qt-qt3.html)该ToolBarDock已被弃用,应改用Qt::Dock。 我在这方面没有找到什么帮助。我正在使用VisualStudio2008内部的库。有QT/visualstudio专家吗

如果这有帮助,下面是它在q3toolbar中失败的代码。h:

Q3ToolBar(const QString &label,
          Q3MainWindow *, Qt::ToolBarDock = Qt::DockTop,
          bool newLine = false, const char* name=0);

在这个问题上,我走了另一条路。我从其他地方的“qt3库”找到了我需要的实现。就在我发现之前,我从这里的一些同事那里得到了一些建议。大家一致认为,我需要重新构建Qt,以包括qt3支持。虽然我没有完成,但这里有一些有用的链接


如果有人遇到这个问题并解决了这个问题,请发布您的解决方案!谢谢。

事实上,qt34qt4并不是事事都好。有许多方法、枚举等未转换。这或多或少是一个简单的查找替换工具,它替换了qt\tools\porting\q3porting.xml中的以下指令 在许多情况下,类有替换定义,但此类的方法没有替换定义。在某些情况下,qt3to4会替换代码中根本不属于Qt类的枚举和方法。所以要小心。在任何情况下,我建议您在代码中获得所有Qt类的列表,仔细阅读移植说明(http://doc.qt.nokia.com/4.5/porting4.html)对于您使用的每个类。 另一个问题是返回类型,qt3to4不检查返回值的使用方式。幸运的是,qt3to4做得很好,因此修复其余部分通常是一项琐碎、重复的任务

如果必须移植UI,请查看uic3的未记录参数包装


注:一些数字对于您的工作量估算可能有用:我在2,5个月内移植了(编译)一次600TLOCs+150UI,目前我正在移植大约150个TLOCs项目,并且在两周内完成了相当长的工作

在将项目导入VC++之后,我也遇到了这些错误。将QT3_支持添加到预处理器定义中修复了此问题。

在Qt->Qt项目设置(菜单)中添加QT3支持模块(如果已安装Qt visual加载项),并检查是否有帮助。它将自动添加也需要definitions@Kamil:在pro.file上运行qt3to4会自动将Qt3Support添加到项目文件中。