2016年的一份代码是用VS QT4.8.6编写的,最近需要借鉴下,电脑上当前版本是QT 5.12.1,花了点时间做了下两者的转换,过程记录如下:
vs2017上已经拓展了QT VS Tools工具,当时的代码由vs2008编辑,打开项目出现
选中Qt VS Tools上的Convert custom build steps to Qt/MSBuild选项
直接编译会报一系列错误,需要配置下
当时的QT是win32版本,转换完毕后做如下修改:
项目配置属性中的windows SDK版本设置下,选择第2个10.0.18362.0
Qt Installation配置下
附加目录库添加如下:
附加依赖项添加如下:
代码部分的改动如下:
1. 需要把
#include <QtGui/QWidget>
替换为
#include <QWidget>
诸如类似的包含文件都需要做相应改动
2. 报错误 C2039 “WFlags”: 不是“Qt”的成员 (编译源文件 myui.cpp) 时,需要把WFlages替换为WindowFlags
3. 之前代码里有 QTextCodec::setCodecForTr(QTextCodec::codecForLocale());语句可以注释掉, QT5不再支持了
4. 报错误C2039 “setResizeMode”: 不是“QHeaderView”的成员 ,需要把setResizeMode换为setSectionResizeMode
5.报错误 C2678 二进制“==”: 没有找到接受“std::_Binder<std::_Unforced,SOCKET &,sockaddr *,unsigned int>”类型的左操作数的运算符(或没有可接受的转换) ,需要在bind前面加上双引号,改为如下:
做完如下修改后,编译成功。
见到了16年自己的写的GUI,好熟悉的感觉。