VB 版 (精华区)
发信人: bloom (├┝┞┟┠┢┣), 信区: VB
标 题: 减少vb安装程序的体积
发信站: 哈工大紫丁香 (2000年09月11日16:49:38 星期一), 站内信件
解 决 VB6安 装 程 序 过 大 的 一 个 办 法 :
用 VB6编 译 成 的 EXE文 件 ,运 行 时 需 要 一 个 ‘ 运 行 时 ’ 文 件 ,
即 VB运 行 库 .在 VB6里 是 MSVBVM60.DLL在 VB5里 是 MSVBVM50.DLL, VB5的 这
个 文 件 在 WIN98里 是 操 作 系 统 自 代 的 。 而 VB6则 没 有 , 在 用 VB6的
“ Package & Deployment 向 导 ” 做 安 装 程 序 时 会 自 动 打 进 去 。
以 上 这 些 都 不 是 问 题 , 麻 烦 的 是 如 果 你 在 VB中 用 了 ‘ 数 据
库 访 问 ’ 组 件 , 比 如 ADO和 RDS, 那 么 那 个 “ Package & Deployment
向 导 ” 会 给 你 打 入 一 个 Mdac_typ.exe文 件 在 里 面 , 这 是 一 个 自 解
压 文 件 , 它 有 6M多 。 里 面 就 是 ‘ 数 据 库 访 问 ’ 组 件 所 需 要 的
DLL文 件 等 。 但 一 般 来 说 那 些 文 件 根 本 就 不 可 能 全 是 你 写 的
程 序 都 用 到 的 。 你 可 能 只 用 到 其 中 几 个 。 因 为 VB6支 持 很 多 数
据 访 问 方 法 , 你 只 要 用 其 中 一 种 就 能 写 出 一 个 很 好 的 数 据
库 访 问 程 序 。 所 以 说 , 如 果 你 把 那 个 Mdac_typ.exe打 入 安 装 程 序
, 你 发 布 的 安 装 程 序 最 少 也 得 有 6M, 而 其 中 很 多 是 你 用 不 到
的 。 ( 主 持 人 注 : Mdac_typ.exe是 针 对 ADO的 , 如 果 使 用 的 是 DAO
或 RDO, 可 以 不 要 这 个 文 件 。 )
那 么 如 果 知 道 你 到 底 需 要 哪 些 文 件 呢 ? ? 我 想 出 一 个 办
法 : 在 你 机 器 上 运 行 你 写 的 程 序 , 然 后 用 WIN98自 代 的 那 个 ‘
系 统 信 息 ’ 来 看 看 你 运 行 你 的 VB程 序 时 WIN98系 统 装 入 了 哪 些
文 件 库 。 很 简 单 : 装 入 了 哪 些 , 就 用 哪 些 。
下 面 是 具 体 做 法 :
1 在 WIN98里 - > 程 序 - > 附 件 - > 系 统 工 具 - > 系 统 信
息
2 然 后 打 开 ‘ 系 统 信 息 ’ 后 选 那 个 树 形 中 的 ‘ 已 加 载 32
位 模 块 ’
现 在 你 所 看 到 的 就 是 系 统 当 前 用 到 的 DLL和 一 些 OCX文 件 ,
还 会 有 一 些 EXE文 件 。 VB主 要 可 能 用 的 是 DLL和 OCX文 件 。 运
行 上 面 两 步 时 先 不 要 启 动 你 的 VB程 序 以 及 其 它 的 WIN98程 序 。
这 样 我 们 得 到 的 是 一 个 最 少 的 文 库 列 表 , 以 进 与 后 面
的 列 表 比 较 。
3 在 右 边 的 文 件 列 表 ‘ 名 称 ’ 里 按 SHIFT用 鼠 标 选 所 有 的
文 件 名 。 然 后 选 菜 单 的 ‘ 复 制 ’ 并 打 开 记 事 本 将 ‘ 复 制 ’ 的
信 息 粘 过 来 , 并 保 存 。 如 : first.txt
4 打 开 你 写 的 VB程 序 ( 我 指 的 是 已 编 译 成 EXE的 程 序 ) 并
使 用 它 的 所 有 功 能 ( 只 是 运 行 出 来 还 是 不 够 的 , D
LL文 件 是 动 太 装 入 的 , 只 有 用 到 相 应 功 能 时 才 会 装 入 ) , 并
且 不 要 关 你 的 程 序 。
5 现 在 回 到 ‘ 系 统 信 息 ’ 里 并 按 F5更 新 文 件 列 表 。 这 时
所 得 到 的 列 表 就 包 括 了 VB所 要 用 的 运 行 库 。 然 后 你 要
重 做 上 面 的 第 3步 。 将 它 也 保 存 。 如 : last.txt
6 我 们 已 经 SAVE两 个 文 件 了 , 现 在 只 要 比 较 它 们 的 不 同 就
可 以 了 。 你 可 以 打 开 那 两 个 一 边 一 个 很 眼 一 行 行 看 , 看 看
后 来 存 的 那 个 多 了 些 什 么 。 。 。 也 可 以 用 fc first.txt last.txt
> diff.txt 来 比 。 不 过 这 样 结 果 很 乱 。
总 之 以 上 方 法 就 是 根 据 程 序 运 行 时 装 入 内 存 的 文 件 库 来
确 定 , 这 个 程 序 所 必 要 的 文 件 。 ( 主 持 人 注 : 也 可 以 从 http
://www.sysinternals.com/handleex.htm下 载 免 费 工 具 : HandleEx。 这 个 工
具 可 以 显 示 当 前 运 行 的 进 程 都 使 用 了 哪 些 DLL)
--
├┝┞┟┠┢┣◣◢
∣
▆▆▆
▇▇
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.170.211]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.338毫秒