4.7 KiB
4.7 KiB
重新生成项目后的代码移植方法
这份说明的目标是:
- 重新新建一个干净的 Qt Widgets 工程。
- 不沿用旧工程的
.sln / .vcxproj / .vs / x64。 - 只把当前已经实现好的业务代码移植过去。
这样最稳,也最不容易把旧工程状态带进来。
一、建议的新建方式
在 Visual Studio 里重新新建一个 Qt Widgets Application。
建议保持这些配置:
- Qt:
5.13.1 - 平台:
x64 - 编译器:和你当前环境一致
- Qt Modules:
core;gui;widgets
新工程创建完成后,先确保它能空工程编译通过一次。
二、不要移植的内容
下面这些不要从旧工程复制过去:
.vs/x64/20260320.*这些中间目录- 旧的
.sln - 旧的
.vcxproj - 旧的
.vcxproj.filters - 旧的
.vcxproj.user Browse.VC.db一类缓存
原则很简单:
只移植源码,不移植工程缓存和生成物。
三、需要复制过去的目录和文件
把下面这些直接复制到新工程根目录:
APP/DRI/LOGIC/EXTEN/main.cpp
如果你想保留当前这套界面和调试窗口,这些就是最小必需集合。
四、可以不要的旧模板文件
如果新工程自动生成了自己的 MainWindow 或其他模板文件,而你准备直接用当前这套代码,那么这些模板文件可以删掉或从工程里移除。
当前仓库里这些文件不是主链必需:
_new_keyboard.cpp_new_keyboard.h_new_keyboard.ui_new_keyboard.qrc
它们现在没有参与主入口逻辑。
五、把文件加回新工程的方法
推荐用 Visual Studio 的“添加现有项”。
1. 源文件加入工程
把这些 .cpp 加到新工程:
APP\\APP_ChatGptButton.cppAPP\\APP_DebugPanel.cppAPP\\APP_GlassCard.cppAPP\\APP_KeyButton.cppAPP\\APP_ThemeSwitch.cppAPP\\APP_UIWindow.cppDRI\\DRI_DeviceState.cppDRI\\DRI_HidDevice.cppEXTEN\\EXTEN_Theme.cppLOGIC\\LOGIC_DeviceSession.cppLOGIC\\LOGIC_HidProtocol.cppLOGIC\\LOGIC_KeypadModel.cppmain.cpp
2. 头文件加入工程
把这些 .h 加到新工程:
APP\\APP_ChatGptButton.hAPP\\APP_DebugPanel.hAPP\\APP_GlassCard.hAPP\\APP_KeyButton.hAPP\\APP_ThemeSwitch.hAPP\\APP_UIWindow.hDRI\\DRI_DeviceState.hDRI\\DRI_HidDevice.hEXTEN\\EXTEN_Theme.hLOGIC\\LOGIC_DeviceSession.hLOGIC\\LOGIC_HidProtocol.hLOGIC\\LOGIC_KeypadModel.h
六、新工程需要保留的工程设置
请确认新工程至少有这些设置:
1. Include 目录
C/C++ -> Additional Include Directories
至少包含:
$(ProjectDir)
这样代码里的这类包含才能工作:
#include "APP/APP_UIWindow.h"#include "DRI/DRI_HidDevice.h"#include "LOGIC/LOGIC_HidProtocol.h"
2. Qt 模块
保持:
coreguiwidgets
3. 字符集
保持:
Unicode
4. UTF-8 编译
建议保留:
/utf-8
七、这套代码迁移时有一个好处
当前新增代码已经特意改成了“普通 C++ 回调”,不是自定义 Qt 信号/槽项目项。
这意味着迁移时:
- 不需要额外手工加
QtMoc条目 - 不需要改
.vcxproj去注册新 moc 头 - 只要把
.cpp/.h作为普通源码文件加进去即可
这一步会明显降低“工程能编但 VS 打不开”这类问题。
八、HID 相关设置
DRI\\DRI_HidDevice.cpp 里已经用了:
#pragma comment(lib, "hid.lib")#pragma comment(lib, "setupapi.lib")
所以一般不需要你再手工去 Linker 里加库。
只要是 Windows 桌面工程即可。
九、迁移后你应该先验证什么
迁移完成后,不要先看业务联动,先按这个顺序验证:
- 工程能正常打开
- 工程能
Debug|x64编译通过 - 程序能启动
- 主界面正常显示
- 下方调试窗口正常显示
- 能枚举到
VID=0x1209 / PID=0x0001 / UsagePage=0xFF00 / Usage=0x0002 - 能看到收到的原始包
- 能看到
0x04包的中文解析
十、最稳的实际操作顺序
推荐直接按下面顺序做:
- 新建一个全新的 Qt Widgets 工程
- 先空工程编译一次
- 关闭 VS
- 把
APP/DRI/LOGIC/EXTEN/main.cpp复制过去 - 删除新模板里不用的
MainWindow一类文件 - 打开新工程
- 用“添加现有项”把上面列出的
.cpp/.h加入工程 - 检查 Qt modules 和 include 目录
- 编译
- 接设备验证调试窗口
十一、如果你想让我继续帮你做
如果你重新生成了一个新工程目录,我可以直接帮你做这几件事:
- 把当前代码拷过去
- 帮你把新
.vcxproj补成可编译状态 - 再做一次编译验证
你只要把新工程路径告诉我即可。