新建「窗口项目」或「DLL 项目」后,YStudio 会在所选位置创建与项目同名的目录。本文说明默认文件布局与常见扩展。
相关:语言基础 · 最小窗口程序 · 窗口 XML · 窗口布局 · YSS · 资源嵌入 · 自定义类型 · 自定义类 · 用户组件 · DLL / API · DLL 工程 · 静态模块
硬约束
- 工程根必须有
*.ysproj;窗口工程默认含窗口/主窗口/主窗口.xml+源代码/main.yc。 - 控件在代码里用 XML
名称标识,不是标题文字。 - 资源统一
:/相对路径(相对工程「资源」目录);F5 会部署到 exe 旁。 - 读/写磁盘文件(
读文件、INI、SQLite、工程内 DLL)写相对工程根,如"cfg.ini"、"插件\\a.dll",不必拼接取程序目录()。 - DLL 工程(
"type": "dll")无窗口/,用导出+.yex,见 dll-project.md。 - 模块工程(
"type": "module")同样无窗口,编译为加密.ys静态包,见 ys-module.md。 - 不要手改
发布/当源码目录。
默认目录树
{工程名}/
{工程名}.ysproj # 工程描述(JSON:名称、架构、类型等)
源代码/
main.yc # 主逻辑 / 控件事件(新建时自动生成)
global.yc # 全局变量(新建时自动生成)
constants.yc # 全局常量(新建时自动生成)
*.yt / *.ypp / *.yp # 按需:自定义类型 / 类 / API 声明
*.yex # DLL / 模块工程:导出清单
… # 窗口 / DLL 工程可在.ysproj 引用 *.ys 模块
窗口/
主窗口/
主窗口.xml # 主窗布局与控件属性
主窗口.yss # 可选,与 XML 同目录的样式
{其它窗}/
{其它窗}.xml
{其它窗}.yc # 次级窗事件源(可与主逻辑并列)
组件/ # 可选:用户组件定义(*.yuc);可从其它工程拷贝复用,见 usercompose.md
{组件名}.yuc
资源/
{窗体名}.yss # 推荐的 YSS 位置(F5 会部署到 exe 旁)
img/ … # 图片、脚本、数据等;代码中写 :/相对路径
发布/ # 编译 / 发布输出(运行后生成,勿手改为源)
DLL 项目(.ysproj 中 "type": "dll")无 窗口/,用 导出 "Name" 产出 .dll,见 dll-project.md。
模块项目("type": "module")无窗口,用同样的 导出 产出加密 .ys,可被窗口/DLL 静态链接,见 ys-module.md。
文件类型
| 扩展名 | 用途 |
|---|---|
.ysproj |
工程文件;双击或「打开工程」用 |
.xml |
窗体布局;设计器读写 |
.yc |
Y++ 源码:事件、函数、业务逻辑 |
.yss |
界面样式表(类 CSS) |
.yt |
自定义类型(值语义结构体) |
.ypp |
自定义类 |
.yp |
DLL / 系统 API 声明 |
.yex |
DLL / 模块导出清单 |
.ys |
加密静态模块包(宿主工程「引用模块」;不可当源码打开) |
.yuc |
用户组件定义(工程 组件/;设计器「另存为用户组件」或从其它工程拷贝);见 usercompose.md |
在工程树 源代码 上右键可新建 .yc / .yt / .ypp / .yp;新建窗口会在 窗口/{窗体名}/ 下生成对应 XML(及可选 YSS)。用户组件另存(或拷入 组件/*.yuc)后会出现在工具箱「用户组件」分组;属性 / 事件 / .yuc 字段说明见 usercompose.md。
新建时自动生成的内容
| 路径 | 说明 |
|---|---|
{工程名}.ysproj |
type=window,含架构(x86 / x64)等 |
源代码/main.yc |
事件处理入口;注释里有简易示例 |
源代码/global.yc |
放全局变量 |
源代码/constants.yc |
放全局常量 |
窗口/主窗口/主窗口.xml |
空白主窗(默认约 420×280) |
资源/ |
空目录,用于图片、YSS、嵌入文件等 |
写代码时怎么找文件
| 目的 | 路径 / 做法 |
|---|---|
| 改界面 | 窗口/{窗体名}/{窗体名}.xml(设计视图) |
| 写事件 | 主窗多在 源代码/main.yc;次级窗可在 窗口/{窗体名}/{窗体名}.yc |
| 写样式 | 推荐 资源/{窗体名}.yss;运行时默认加载 exe 旁同名文件 |
| 读资源 | :/相对资源路径,见 资源嵌入 |
| 读/写工程文件 | "cfg.ini"、"data\\demo.db" 相对工程根;不必 合并路径(取程序目录(), …) |
| 调系统 API | 源代码/*.yp,见 dllapi.md |
| 自定义结构/类 | .yt / .ypp |
多窗口
新建窗口后目录形如 窗口/登录/、窗口/工作台/。跨窗:载入(窗口名) / 关闭(窗口名)(无引号)。详见 多窗口设计。
易错对照
| 错误 | 正确 |
|---|---|
只发布 exe、漏 img/.yss |
带上发布目录整棵资源 |
| 代码里写按钮标题当标识 | 用 XML「名称」 |
| DLL 工程去找设计画布 | DLL 工程默认代码视图,无窗口树 |