C++ Builder 3.0中各种资源的利用
敬业的IT人
互联网
佚名
2008-1-3 21:55:52
在 编 写 程 序 的 过 程 中, 经 常 要 用 到 各 种 资 源。 比 如 说, 想 给 自 己 的 程 序 换 个 自 己 的 图 标, 使 用 一 些 活 泼 的 光 标 来 增 加 趣 味 性, 播 放 一 些 声 音 和 动 画 文 件, 或 者 使 用 别 人 写 好 的 程 序 来 实 现 某 个 功 能。 我 们 往 往 希 望 将 这 些 资 源 直 接 放 到EXE 文 件 中 以 形 成 一 个 单 独 的 可 执 行 文 件, 这 就 存 在 一 个 如 何 在 运 行 时 访 问 和 使 用 这 些 资 源 的 问 题。
在 编 译 期 间, 这 就 要 用 到 一 种 文 件, 以 .rc 结 尾 的 资 源 定 义 文 件。
一: RC 文 件
rc 文 件 是 个 文 本 文 件, 它 的 格 式 很 简 单, 按 如 下 格 式 定 义:
资 源 标 识 符 资 源 类 型 资 源 的 路 径
以 下 的 rc 文 件 定 义 了 一 个 声 音 资 源, 两 个 光 标 资 源, 三 个 图 标 资 源 和 一 个exe 文 件 资 源。
src1.rc:
S1 WAV wav1.Wav
C1 CURSOR cursor1.cur
C2 CURSOR cursor2.cur
I1 IC) ;
rs.SaveToFile( AnsiString(exefile) ) ;
delete &rs ;
}
//执行 pkunzip.exe
// Edit1- $#@62;Text和 Edit2- $#@62;Text分别为运行时
输入的zip文件名和目标文件目录。
ShellExecute(HInstance, "open", exefile, \
(AnsiString("-d ") + Edit1- $#@62;Text +
" " + Edit2- $#@62;Text).c_str(), \
tmppath, SW_HIDE ) ;
Application- $#@62;MessageBox("解压缩完成", "OK", IDOK ) ;
}
此 种 方 法 实 际 上 是 用 时 间 和 空 间 来 换 取 便 利 性, 有 一 定 的 参 考 价 值。 例 如,DynaDoc 的 免 费 分 发 版 本, 就 是 将 真 正 的 执 行 程 序 压 缩 后 放 在 一 个 有 解 压 缩 功 能 的“ 壳” 中。 运 行 时, 首 先 是“ 壳” 运 行 起 来, 将 真 正 的 执 行 程 序 解 压 缩 到 临 时 目 录, 然 后 去 运 行 它。 如 果 你 的 程 序 含 有 大 量 的BMP,WAV 文 件, 不 妨 一 试, 能 让 你 的 程 序 减 肥 不 少。
- 最新文章
- 用C++Builder开发动画DLL[01-03]
- 用C++Bulider在WIN.INI中保存信息[01-03]
- C++Builder 中大尺寸图象的显示技巧[01-03]
- BCB环境下CORBA实做之客户端[01-03]
- 自画菜单[01-03]
- 以C++ Builder处理Windows 讯息(Messa..[01-03]
- 相关文章
