添加完善说明

This commit is contained in:
2026-04-26 15:20:50 +08:00
parent ea10e6ef12
commit a117b12981
3 changed files with 274 additions and 212 deletions
+89 -58
View File
@@ -1,38 +1,36 @@
# Dev-C++ 运行说明
本说明适用于需要在 `Dev-C++` 环境下编译本项目的情况。
结论先说:
- 可以运行
- 但不如 VS Code + 脚本方式稳定
- 如果只是为了交作业或课堂展示,优先推荐使用项目自带的 MinGW 脚本
## 1. 适用环境
本说明适用于 Windows 下的 Dev-C++ + MinGW 环境。
- Windows
- Dev-C++
- MinGW-w64
如果 Dev-C++ 自带的是较旧版本 MinGW,也可以尝试使用,但更建议使用支持 C++17 和 `windres` 的 MinGW。
建议 Dev-C++ 所使用的编译器支持:
## 2. 当前工程结构
- `C++17`
- `windres`
- `-municode`
项目已按工程方式整理:
## 2. 建议工程类型
```text
src/
├─ include/ 头文件
├─ source/ 源文件
└─ resources/ Windows 资源脚本
assets/
├─ icons/ 图标资源
├─ images/ 图片资源
└─ audio/ 音频资源
```
## 3. 建议的工程类型
在 Dev-C++ 中新建工程时,建议选择:
新建工程时请选择:
```text
Windows Application
```
不要选控制台程序,否则窗口程序的入口和链接方式会不匹配
不要选控制台程序。
## 4. 需要加入工程的文件
## 3. 需要加入工程的文件
### 源文件
@@ -42,27 +40,29 @@ Windows Application
- `src/source/Tetris.cpp`
- `src/source/TetrisLogic.cpp`
- `src/source/TetrisRender.cpp`
- `src/source/TetrisRogue.cpp`
### 头文件
头文件通常不需要全部加入编译列表,但建议加入工程树便于查看
头文件不一定要加入编译列表,但建议加入工程树便于浏览
- `src/include/stdafx.h`
- `src/include/Tetris.h`
- `src/include/TetrisLogicInternal.h`
- `src/include/targetver.h`
- `src/include/resource.h`
### 资源文件
如果 Dev-C++ 当前环境支持资源编译,再把下面文件加入工程
如果当前 Dev-C++ 环境支持资源编译,可以再加入
- `src/resources/Tetris.rc`
## 5. 需要配置的选项
## 4. 需要配置的选项
### 头文件搜索路径
把下面目录加入 include path
加入
```text
src/include
@@ -70,15 +70,18 @@ src/include
### 链接库
确保工程链接以下 Windows 库:
确保链接以下库:
- `winmm`
- `gdi32`
- `user32`
- `comdlg32`
- `ole32`
- `gdiplus`
### 编译标准
建议使用
建议设置为
```text
C++17
@@ -92,59 +95,87 @@ C++17
- `_UNICODE`
- `_WINDOWS`
### 工程类型相关参数
### 建议参数
如果需要手动补参数,建议与当前脚本保持一致
如果需要手动补
- `-mwindows`
- `-municode`
## 6. 关于资源文件
## 5. 资源文件注意事项
这里是 Dev-C++ 环境下最可能出问题的地方
Dev-C++ 下最容易出问题的是资源编译
`src/resources/Tetris.rc` 原始编码是 UTF-16,而有些 MinGW / Dev-C++ 组合下的 `windres` 不能直接编译它。
本项目资源包括:
同时,资源脚本中引用的图标名是:
- 图标
- 菜单
- 关于框
- `Tetris.ico`
- `small.ico`
资源脚本为:
而实际文件位于:
```text
src/resources/Tetris.rc
```
- `assets/icons/Tetris.ico`
- `assets/icons/small.ico`
如果 Dev-C++ 对该资源文件编译不稳定,最稳妥的做法有两种。
## 7. 推荐做法
### 做法一:不编译资源文件
### 做法一:先不编资源文件
最省事的方式是先不要把 `Tetris.rc` 加入 Dev-C++ 工程,只编译 C++ 源文件。
先只编译 C++ 源文件
这样:
- 程序主体通常可以编译运行
- 但图标、菜单、关于框资源可能缺失
- 程序主体通常能正常运行
-窗口图标、菜单资源可能缺失
### 做法二:单独处理资源文件后再加入工程
### 做法二:优先使用脚本构建
如果你希望在 Dev-C++ 中也带资源运行,建议先做这两步
先在项目根目录执行
1.`Tetris.rc` 另存为 UTF-8 或 ANSI
2. 把资源中的图标路径改成实际可访问路径
例如改为:
```text
"assets/icons/Tetris.ico"
"assets/icons/small.ico"
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1
```
这样更容易在 Dev-C++ 中直接通过资源编译
确认脚本方式可构建后,再视需要把 Dev-C++ 作为备用方案
## 8. 运行结果
## 6. 资源目录不要遗漏
如果配置正确,编译后应该能得到一个 Windows 图形界面的 `exe`,并正常弹出游戏窗口。
无论你用哪种方式运行,下面这些目录都不要删:
如果只是为了开发和调试,建议优先使用本项目现成的 VS Code 配置,因为当前目录结构、构建脚本和资源处理逻辑已经和 VS Code 对齐。 Dev-C++ 更适合作为兼容运行方案。
- `assets/icons/`
- `assets/images/`
- `assets/audio/`
- `assets/video/`
否则会影响:
- 图标显示
- 背景图片
- 背景音乐
- 视频复活
## 7. 常见问题
### 1)能编译但没有图标或菜单
通常是资源文件没有正确编译进程序。
### 2)编译时报 `gdiplus` 或 `winmm` 未定义引用
说明缺少链接库,请检查工程链接设置。
### 3)运行时没有背景图 / 音乐 / 视频
说明程序找不到 `assets/` 目录,通常是工作目录不对,或者运行时只复制了 `exe` 没带资源。
## 8. 建议
如果你的目标是:
- 交作业
- 本地演示
- 快速稳定运行
请优先使用本项目已经配好的 `build-mingw.ps1` 和 VS Code 配置。
Dev-C++ 更适合作为兼容环境,而不是主开发环境。