五分钟跑起第一个 StellarX 窗口
本页面只做一件事:帮助你完成环境准备、引入 StellarX,并运行第一个可交互的 C++ GUI 程序。
如果你已经安装 Visual Studio 与 EasyX,并具备基本 C++ 语法基础,可以直接从最小窗口示例开始。
Before Start
开始前确认
Step 01
准备开发环境
StellarX 基础版基于 EasyX 与 Win32,适合 Windows 平台下的教学、小型工具和 GUI 原理学习。安装 Visual Studio
建议安装 Visual Studio 2022,并勾选“使用 C++ 的桌面开发”工作负载。
安装 EasyX
StellarX 当前基础版依赖 EasyX。安装完成后,VS 中应能正常包含 easyx.h 并编译 EasyX 示例。
设置 C++17
推荐将项目语言标准设置为 C++17,避免因标准过旧导致部分语法或库特性不可用。
Step 02
获取 StellarX
你可以从 GitHub Release 下载稳定版本,也可以直接 clone 仓库源码。初学阶段推荐先使用 Release 包。git clone https://github.com/Ysm-04/StellarX.git
Step 03
创建 Visual Studio 项目
这一步的目标是创建一个 C++ 工程,并选择一种方式引入 StellarX。 你可以直接添加源码文件,也可以使用 Release 包中发布的头文件和静态库文件。创建 C++ 空项目
在 Visual Studio 中新建一个 C++ 空项目,例如命名为 StellarXQuickStart。
建议先切到 所有配置 和 所有平台 后再统一设置项目属性。
选择 StellarX 引入方式
下面两种方式二选一即可:方式 A 适合直接阅读和调试源码;方式 B 适合使用 Release 包中的 .lib 进行链接。
方式 A:直接添加源码文件
右键项目,选择 添加 → 现有项,
将 StellarX 的 .h 和 .cpp 文件加入当前工程。
这种方式下,StellarX 源码会直接参与当前项目编译,不需要再额外链接 StellarX 的 .lib。
方式 B:使用发布包中的静态库
如果你使用 Release 包中的 .lib,需要配置 StellarX 的头文件目录、库文件目录和附加依赖项。
这种方式下,一般不需要再把 StellarX 的 .cpp 文件加入当前工程。
配置 StellarX 附加包含目录
打开项目属性,进入
配置属性 → C/C++ → 常规 → 附加包含目录,
添加 StellarX 头文件所在目录。这样工程才能正常包含 StellarX.h。
配置 StellarX 附加库目录
打开项目属性,进入
配置属性 → 链接器 → 常规 → 附加库目录,
添加 StellarX 的 .lib 文件所在目录。这个选项只负责告诉链接器去哪里查找库文件。
配置 StellarX 附加依赖项
打开项目属性,进入
配置属性 → 链接器 → 输入 → 附加依赖项,
添加需要链接的 StellarX 库文件名,例如 StellarX.lib。
具体名称以 Release 包中实际提供的库文件为准。
确认 EasyX 可用
如果 EasyX 安装器已经自动完成 Visual Studio 配置,通常可以直接使用。
如果项目找不到 easyx.h,需要进入
配置属性 → C/C++ → 常规 → 附加包含目录,
添加 EasyX 头文件所在目录。
配置 EasyX 附加库目录
如果链接阶段找不到 EasyX 相关库,进入
配置属性 → 链接器 → 常规 → 附加库目录,
添加 EasyX 库文件所在目录。这个选项只负责告诉链接器去哪里查找 .lib 文件。
配置 EasyX 附加依赖项
如果仍然链接失败,进入
配置属性 → 链接器 → 输入 → 附加依赖项,
添加需要链接的 EasyX 库文件名。具体库名以你的 EasyX 安装目录和版本为准。
设置为多字节字符集
打开项目属性,进入
配置属性 → 高级 → 字符集,
选择 使用多字节字符集。StellarX 基础版当前主要按 EasyX 常见的多字节环境使用。
设置 C++ 语言标准
打开项目属性,进入
配置属性 → C/C++ → 语言 → C++ 语言标准,
建议选择 ISO C++17 标准 或更高版本。
确认配置和平台一致
检查 Debug / Release、Win32 / x64 下的附加包含目录、附加库目录、附加依赖项、字符集和 C++ 语言标准是否一致。 很多“Debug 能运行,Release 失败”的问题都来自这里。
Step 04
运行第一个窗口
新建main.cpp,复制下面的代码。运行后,你应该能看到一个 StellarX 窗口。
runEventLoop() 正常执行,并且没有在事件循环前提前退出。
#include "StellarX.h"
int main()
{
Window win(1300, 800, NULL, RGB(255, 255, 0), "欢迎使用 StellarX 星垣-GUI");
win.draw();
return win.runEventLoop();
}
Step 05
添加一个按钮
窗口跑起来之后,可以继续添加一个 Button,验证控件创建、事件回调和消息框是否正常工作。 这里使用std::unique_ptr 把按钮交给窗口管理,避免手动释放控件对象。
setOnClickListener 绑定按钮点击事件,和当前源码中的命名保持一致。
#include "StellarX.h"
#include <memory>
#include <utility>
int main()
{
Window win(900, 600, NULL, RGB(246, 248, 251), "StellarX Quick Start");
auto button = std::make_unique<Button>(60, 60, 180, 44, "点击测试");
button->setOnClickListener([&win]()
{
StellarX::MessageBox::showAsync(win, "按钮事件已经触发。", "StellarX");
});
win.addControl(std::move(button));
win.draw();
return win.runEventLoop();
}
Troubleshooting
常见问题
如果第一个窗口没有正常运行,可以先从下面几个方向排查。找不到 StellarX.h
检查是否已经添加 StellarX 头文件,或者是否正确配置了
配置属性 → C/C++ → 常规 → 附加包含目录。
如果使用静态库方式,也要确认该目录指向 Release 包中的头文件目录。
StellarX 相关符号链接失败
如果使用源码方式,确认 StellarX 的 .cpp 文件已经加入工程并参与编译;
如果使用 .lib 方式,检查
链接器 → 常规 → 附加库目录
和
链接器 → 输入 → 附加依赖项,
并确认库文件名与 Release 包中的实际文件名一致。
找不到 easyx.h 或 EasyX 链接失败
找不到 easyx.h 通常是 EasyX 附加包含目录没有配置正确;
链接失败通常需要检查
链接器 → 常规 → 附加库目录
和
链接器 → 输入 → 附加依赖项。
同时确认 Debug / Release、Win32 / x64 与 EasyX 安装环境一致。
窗口打开后马上关闭
确认代码最后返回的是 win.runEventLoop(),不要在绘制后直接 return 0。
中文显示异常或控制台乱码
先确认源文件编码、系统代码页、字体环境和项目字符集。StellarX 基础版建议在
配置属性 → 高级 → 字符集
中选择
使用多字节字符集。
Debug 可以运行,Release 出问题
检查 Release 配置下的附加包含目录、附加库目录、附加依赖项、字符集、C++ 语言标准和项目平台是否与 Debug 一致。
Next Step
