项目概览
• 项目目标:将原本使用 Delphi 开发的 Windows 桌面工具 Wave Extractor 1.42 重新实现为基于 MFC 的 C++ 应用,以提高可维护性、兼容现代 Windows 系统,并增强 UI 支持。
• 主要目标:
1. 反向工程 Delphi 逻辑与算法。
2. 使用 MFC 重实现应用。
3. 保留原有功能,包括设备通信、WAV 解码和数据管理。
4. 改进 UI 响应性,并模块化代码,便于未来更新。
2. 原 Delphi 功能
• COM 端口通信:支持选择 COM 端口与设备通信。
• 设备激活:激活设备以进行数据读取。
• 数据处理:读取、擦除及保存设备数据。
• 时间管理:设置设备时间。
• WAV 转换:将原始设备数据转换为 WAV 文件。
• WAV 解码:读取和解码已有 WAV 文件。
3. 开发流程
3.1 反向工程
1. 使用 Delphi 反编译工具与反汇编工具分析原代码流程。
2. 确定关键模块:
o COM 端口处理
o 设备激活
o 数据读写
o WAV 转换与解码
3. 将 Delphi VCL 组件(按钮、组合框、编辑框等)映射为 MFC 控件。
3.2 设计与架构
• 采用 MFC Document/View 架构,将数据处理与 UI 表现分离。
• 核心模块定义:
1. COM Port Manager:管理设备枚举与通信。
2. Device Controller:实现激活、擦除、读取/保存及时间设置操作。
3. WAV Processor:处理 WAV 解码与转换。
3.3 MFC 实现
1. 创建基于 MFC 对话框的主界面。
2. 重建 Delphi UI 元素:
o 连接、激活、信息、擦除、设置时间、读取并保存、WAV 转换、WAV 解码
o COM 端口选择组合框
o 日志窗口显示控制台消息
3. 使用 C++ 实现后台逻辑:
o Windows API 实现串口通信(CreateFile / ReadFile / WriteFile)
o 使用标准 C++ 库进行 WAV 转换与解码