Skip to content

项目结构

Warning

The current page still doesn't have a translation for this language.

You can read it through google translate.

了解 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            # 说明文档

最佳实践

目录组织

  1. 保持目录结构清晰
  2. 使用描述性的目录名称
  3. 避免过深的嵌套层次
  4. 分离源代码和资源文件

文件管理

  1. 使用一致的命名约定
  2. 及时清理无用文件
  3. 定期备份重要文件
  4. 使用版本控制管理变更

资源优化

  1. 压缩图片资源
  2. 合理组织 XML 文件
  3. 避免重复资源
  4. 使用资源打包功能

合理的项目结构是成功开发的基础,建议在项目开始时就建立良好的组织方式。