139 lines
2.5 KiB
Markdown
139 lines
2.5 KiB
Markdown
# Dev-C++ 运行说明
|
|
|
|
本项目可以尝试在 Dev-C++ 中运行,但更推荐使用 VS Code 和 `build-mingw.ps1` 脚本。Dev-C++ 对资源文件、Unicode 入口和链接库的处理更容易出现环境差异。
|
|
|
|
## 1. 工程类型
|
|
|
|
新建工程时请选择:
|
|
|
|
```text
|
|
Windows Application
|
|
```
|
|
|
|
不要选择控制台程序。
|
|
|
|
## 2. 需要加入工程的源码
|
|
|
|
源文件:
|
|
|
|
```text
|
|
src/source/stdafx.cpp
|
|
src/source/Tetris.cpp
|
|
src/source/TetrisLogic.cpp
|
|
src/source/TetrisRender.cpp
|
|
src/source/TetrisRogue.cpp
|
|
```
|
|
|
|
头文件目录:
|
|
|
|
```text
|
|
src/include
|
|
```
|
|
|
|
建议把以下头文件加入工程树,便于查看:
|
|
|
|
```text
|
|
src/include/stdafx.h
|
|
src/include/Tetris.h
|
|
src/include/TetrisLogicInternal.h
|
|
src/include/targetver.h
|
|
src/include/resource.h
|
|
```
|
|
|
|
## 3. 资源文件
|
|
|
|
资源文件为:
|
|
|
|
```text
|
|
src/resources/Tetris.rc
|
|
```
|
|
|
|
如果 Dev-C++ 能正常编译资源,可以加入该文件。
|
|
如果资源编译失败,可以先不加入资源文件,只编译 C++ 源码。这样程序主体仍可运行,但图标、菜单等资源可能不完整。
|
|
|
|
## 4. 编译设置
|
|
|
|
建议:
|
|
|
|
- C++ 标准:`C++17`
|
|
- 工程类型:Windows 程序
|
|
- 字符集:Unicode
|
|
|
|
建议预处理宏:
|
|
|
|
```text
|
|
UNICODE
|
|
_UNICODE
|
|
_WINDOWS
|
|
```
|
|
|
|
建议编译 / 链接参数:
|
|
|
|
```text
|
|
-mwindows
|
|
-municode
|
|
```
|
|
|
|
## 5. 链接库
|
|
|
|
需要链接以下库:
|
|
|
|
```text
|
|
winmm
|
|
gdi32
|
|
user32
|
|
comdlg32
|
|
ole32
|
|
gdiplus
|
|
shell32
|
|
```
|
|
|
|
如果出现 `undefined reference`,优先检查这些库是否正确加入。
|
|
|
|
## 6. 资源目录
|
|
|
|
运行时请保留:
|
|
|
|
```text
|
|
assets/icons/
|
|
assets/images/
|
|
assets/audio/
|
|
assets/video/
|
|
```
|
|
|
|
这些资源用于:
|
|
|
|
- 程序图标
|
|
- 背景图片
|
|
- 背景音乐
|
|
- 视频复活
|
|
|
|
如果工作目录设置不正确,程序可能找不到这些资源。
|
|
|
|
## 7. 常见问题
|
|
|
|
### 资源文件编译失败
|
|
|
|
Dev-C++ 的 `windres` 对资源文件编码和路径比较敏感。可以先不加入 `Tetris.rc`,或者改用项目自带脚本构建。
|
|
|
|
### 无法识别 `_tWinMain`
|
|
|
|
说明工程类型或 Unicode 参数不正确。请确认使用 Windows Application,并启用 Unicode 相关宏和 `-municode`。
|
|
|
|
### 背景、音乐或视频缺失
|
|
|
|
说明运行目录找不到 `assets/`。建议从项目根目录运行,或保持 exe 与资源目录的相对位置。
|
|
|
|
### 链接失败
|
|
|
|
检查是否加入了 `winmm`、`gdiplus`、`shell32` 等库。
|
|
|
|
## 8. 建议
|
|
|
|
Dev-C++ 适合作为备用运行方式。
|
|
如果要稳定构建、调试和课堂展示,建议优先使用:
|
|
|
|
```powershell
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1
|
|
```
|