工程树 资源/ 下的文件可在 Release 打包时写入 exe(嵌入表 g_yppEmbeddedRes)。代码里路径统一写成 :/相对资源路径。
本页是路径约定与运行时读取规则;配合 读文件 / 到字节集 / 各支持库路径参数使用。
硬约束
- 仅 Release 勾选「嵌入 exe」后写入;Debug 菜单灰掉,始终旁路到 exe 旁文件。
- 代码路径写
:/…(亦接受:\\…,归一为:/+ 正斜杠);解析顺序:嵌入表优先 →{exe}/rel→{exe}/resources/rel。 SQLite类.打开(":/…")会物化到临时文件;写入不会改回 exe 内嵌数据——嵌入库建议只读。- 浏览器打开嵌入 html:页内相对 css/图/脚本常失效;请内联、绝对
:/…,或外链完整 URL。 - 第三方如
libmysql.dll未进嵌入表时须与 exe 一并拷贝。
右键「嵌入 exe」
- 打包侧无扩展名白名单:js / html / txt / dll / 图片 / db / yss… 均可。
- 文件夹可整夹嵌入;对「📂 资源」根节点嵌入 = 整树嵌入(工程里记空串,勿写
".")。 - 「批量嵌入 exe…」可多选;「添加资源文件…」其它扩展名用 所有文件 (.)。
外拷可运行(单 exe)
Release 且勾选嵌入后,整工程通常可只拷一个 exe:
| 嵌入表 | 内容 |
|---|---|
g_yppEmbeddedRes |
资源树 :/… |
g_yppEmbeddedFormYss |
主窗 .yss |
g_yppEmbeddedFormControls / g_yppEmbeddedYssExt |
控件表 / YSS 扩展 |
g_yppEmbeddedSecondaryForms[] |
次级窗(载入):controls / launchMeta / yssExt / yss |
Release 发布目录不再旁路拷贝 form_controls_*.bin、form_launch_*.txt、form_yss_ext_*.bin(Debug 仍拷贝)。
编译后检查 发布/.../Release/._cache/embedded_payload.cpp:
g_yppEmbeddedResCount> 0g_yppEmbeddedSecondaryFormCount= 次级窗数量
运行时 :/ 相关命令
共 7 条(支持 :/ 路径的常用入口)。
读文件
- 签名:
文本 读文件(文本 文件路径, [常量 编码=#编码_UTF8], [逻辑 保留格式=真], [逻辑 自动识别编码=真]) - 说明:读取文本文件内容,支持自动识别编码或指定编码。.docx(Word)会尝试用系统 PowerShell 解压并抽取正文为纯文本;失败时请另存为.txt 或使用专用库。
- 参数一│文本 文件路径: 要读取的文件
- 参数二│[常量 编码=#编码_UTF8]: #编码_UTF8 / #编码_GBK / #编码_UNICODE / #编码_自动 等
- 参数三│[逻辑 保留格式=真]: 是否保留换行等
- 参数四│[逻辑 自动识别编码=真]: 真时尝试探测编码
到字节集
- 签名:
字节集 到字节集(文本 路径或文本) - 说明:将文件读入为字节集;若不是有效文件路径,则按 UTF-8 编码文本。
- 参数一│文本 路径或文本: 图片/文件路径,或普通文本。
写出文件
- 签名:
逻辑 写出文件(文本 写出路径, 通用 数据, [逻辑 追加=假], [整数 编码=65001], [逻辑 自动创建目录=真]) - 说明:把资源或普通数据写出到本地文件。数据可为文本、字节、字节集或通用值;当数据是有效的 :/资源路径时,按原始二进制内容写出资源。
- 参数一│文本 写出路径: 目标文件路径;默认自动创建不存在的父目录
- 参数二│通用 数据: 文本、字节、字节集或通用数据;有效的 :/资源路径会按资源原始字节写出
- 参数三│[逻辑 追加=假]: 假=覆盖,真=追加
- 参数四│[整数 编码=65001]: 文本数据的 Windows 代码页,默认 #编码_UTF8;二进制和资源数据忽略此参数
- 参数五│[逻辑 自动创建目录=真]: 为假时父目录不存在则返回假
加载YSS
- 签名:
逻辑 加载YSS([文本 文件路径=""]) - 说明:从.yss 文件加载样式并应用到当前窗体全部控件;运行时可动态换肤。
- 参数一│[文本 文件路径=”“]:.yss 路径;省略则加载 exe 旁「主窗口.yss」;支持相对 exe 的路径(如 yss/demo.yss);资源 URL :/img/xx.png 表示 exe 旁 img/xx.png
加载DLL
- 签名:
长整数 加载DLL(文本 路径) - 说明:LoadLibrary:加载 DLL,返回模块句柄(长整数)。
- 参数一│路径: 如 user32.dll 或完整路径
JS类.加载
- 签名:
逻辑 加载(文本 文件路径) - 说明:按 UTF-8 读取本地.js 文件并执行;成功返回真。
- 参数一│文本 文件路径: 如 “d:\sign.js” 或相对工程路径。
SQLite类.打开
- 签名:
逻辑 打开(文本 路径, [逻辑 只读=假], [文本 密码=""]) - 说明:打开或创建数据库文件;只读=真时不创建新库。密码非空:整库 AES 加密(内存操作,关闭/保存时写盘)。
- 参数一│文本 路径: 数据库文件路径
- 参数二│[逻辑 只读=假]: 真=只读打开
- 参数三│[文本 密码=”“]: 非空则启用 Y++ 库文件加密
易错对照
| 错误 | 正确 |
|---|---|
| Debug 期望已嵌入 | 嵌入仅 Release;Debug 读旁路文件 |
| 嵌入 SQLite 当可写回 exe | 物化临时文件;建议只读 |
| 嵌入 html 相对资源失效 | 内联或绝对 :/… |