项目结构¶
了解 SOUI5 项目的标准结构和文件组织方式,这将帮助您更好地组织和维护您的项目。
标准项目结构¶
一个典型的 SOUI5 项目具有以下结构:
MySOUIApp/
├── src/ # 源代码目录
│ ├── main.cpp # 程序入口点
│ ├── MainDialog.cpp # 主对话框实现
│ ├── MainDialog.h # 主对话框头文件
│ └── stdafx.h # 预编译头文件
├── uires/ # UI 资源目录
│ ├── uires.idx # 资源索引文件
│ ├── xml/ # XML 布局文件
│ │ ├── init.xml # 全局初始化配置
│ │ └── main.xml # 主窗口布局
│ ├── image/ # 图片资源
│ │ ├── btn_close.png
│ │ └── background.jpg
│ └── script/ # 脚本文件(可选)
├── libs/ # 依赖库目录
│ ├── include/ # 头文件
│ └── lib/ # 库文件
├── output/ # 输出目录
│ ├── Debug/
│ └── Release/
├── project_files/ # 项目文件
│ ├── MySOUIApp.vcproj
│ └── MySOUIApp.sln
└── README.md
核心目录说明¶
src/ 源代码目录¶
包含所有 C++ 源代码文件: - main.cpp: 程序入口点和初始化代码 - 对话框类: 继承自 SHostDialog 的窗口类 - 业务逻辑: 应用程序的核心功能代码 - 工具类: 辅助功能和公共组件
uires/ UI 资源目录¶
包含所有界面相关的资源: - uires.idx: 资源索引文件,定义所有资源的映射关系 - xml/: XML 布局文件,定义界面结构 - image/: 图片资源,包括图标、背景等 - font/: 字体文件(可选) - css/: 样式文件(可选)
libs/ 依赖库目录¶
包含 SOUI5 框架文件: - include/: SOUI5 头文件 - lib/: SOUI5 静态库或导入库文件 - dll/: SOUI5 动态库文件
文件命名约定¶
代码文件命名¶
- 头文件: 使用
.h
扩展名 - 源文件: 使用
.cpp
扩展名 - 类名: 使用 PascalCase,如
MainDialog
- 文件名: 与类名保持一致
资源文件命名¶
- XML 文件: 使用描述性名称,如
main_window.xml
- 图片文件: 使用功能前缀,如
btn_close.png
- 资源 ID: 使用 UPPER_CASE,如
IMG_LOGO
模块化组织¶
按功能分组¶
src/
├── ui/ # UI 相关代码
│ ├── dialogs/ # 对话框类
│ ├── controls/ # 自定义控件
│ └── layouts/ # 布局管理
├── business/ # 业务逻辑
│ ├── models/ # 数据模型
│ ├── services/ # 业务服务
│ └── utils/ # 工具函数
└── common/ # 公共代码
├── constants.h # 常量定义
├── types.h # 类型定义
└── macros.h # 宏定义
按模块分组¶
src/
├── login/ # 登录模块
├── main/ # 主界面模块
├── settings/ # 设置模块
└── about/ # 关于模块
配置文件管理¶
项目配置¶
- 编译设置: 在项目属性中配置
- 预处理器定义: 统一在 stdafx.h 中定义
- 库依赖: 在项目设置中配置
运行时配置¶
- 用户设置: 保存在注册表或配置文件
- 应用配置: 通过 XML 或 INI 文件管理
- 资源路径: 支持相对和绝对路径
版本控制建议¶
包含的文件¶
- 所有源代码文件
- 资源文件(XML、图片等)
- 项目配置文件
- 文档和说明
排除的文件¶
# 编译输出
output/
Debug/
Release/
*.obj
*.exe
*.dll
*.lib
# VS 生成文件
*.user
*.suo
*.ncb
*.opt
*.plg
# 临时文件
*.tmp
*.temp
*~
部署结构¶
开发环境¶
保持完整的项目结构,便于调试和开发。
发布版本¶
MySOUIApp_Release/
├── MySOUIApp.exe # 主程序
├── uires/ # UI 资源(可打包)
├── config/ # 配置文件
├── plugins/ # 插件文件
└── README.txt # 说明文档
最佳实践¶
目录组织¶
- 保持目录结构清晰
- 使用描述性的目录名称
- 避免过深的嵌套层次
- 分离源代码和资源文件
文件管理¶
- 使用一致的命名约定
- 及时清理无用文件
- 定期备份重要文件
- 使用版本控制管理变更
资源优化¶
- 压缩图片资源
- 合理组织 XML 文件
- 避免重复资源
- 使用资源打包功能
合理的项目结构是成功开发的基础,建议在项目开始时就建立良好的组织方式。