2024年5月11日发(作者:)

创建安装程序的两种方法

创建安装程序的两种方法

创建安装程序的两种方法

● 彭 进 赵 昕

创 建 安 装 程 序 是 程 序 员 经 常 遇 到 的 问 题 之 一。 本 文

仅 探 讨 在Windows 平 台 上 创 建 安 装(Setup) 程 序 的 两 种

方 法。

一、 使 用Visual C++ 编 程 生 成Setup 程 序

生 成Setup 程 序 最 直 接 的 方 法 当 然 是 通 过 编 程 来 实 现。

对 于Windows 平 台 来 说, 没 有 比Visual C++ 更 好 的 开 发 工

具 了( 原 因 很 简 单, 有 谁 能 比Microsoft 更 了 解Windows 平

台 呢 ?)。 下 面 的 例 程 就 是 使 用Visual C++ 5.0 编 译 完 成

的。

Setup 程 序 主 要 处 理 两 个 方 面 的 问 题 :

(1) 用 户 界 面。 评 价 一 个Setup 程 序 的 优 劣 时, 用 户

界 面 是 否 美 观 是 其 中 的 一 个 重 要 因 素。 此 外, 通 过 交 互

式 界 面 还 应 能 够 获 得 用 户 的 相 关 信 息( 比 如 目 标 目 录)。

(2) 文 件 拷 贝 与 程 序 组 的 生 成。 也 就 是 按 照 用 户 输

入 的 信 息, 生 成 相 应 的 目 录 并 完 成 文 件 拷 贝 功 能( 这 要

涉 及 到 解 压 缩 问 题)。 一 般 来 说, 还 应 包 括 将 可 执 行 文

件 的 图 标 添 加 到 指 定 的 程 序 组 中。

1、 为Setup 程 序 设 置 背 景

Setup 程 序 的 用 户 界 面 以 对 话 框 为 主, 不 过 若 有 美 丽

的 背 景 则 能 为 你 的 程 序 增 色 不 少。 你 可 以 选 择 一 个 合 适

的BMP 文 件, 将 它 插 入 到 工 程 文 件(project) 中, 并 通 过

重 载 主 窗 口 类 的OnPaint() 函 数 显 示 出 来。 值 得 注 意 的 是,

背 景 图 片 不 应 过 于 眩 目, 否 则 会 有 喧 宾 夺 主 之 感。 例 如,

要 加 入 的BMP 文 件 的ID 号 是IDB_BIT。 下 面 给 出 应 加 在

OnPaint() 中 的 函 数。

void Background(CDC *pDC)

{ CDC * pmem;

CBitmap * pback;

CBitmap * pold;

BITMAP ff;

pmem=new CDC;

pbit=new CBitmap;

pbit->LoadBitmap(IDB_BIT);

pmem->CreateCompatibleDC(pDC);

pold=(CBitmap *) pmem->SelectObject(pbit);

pbit->GetObject(sizeof(ff),&ff);

pDC->BitBlt(0,0,h,ht,pmem,0,0,

MERGECOPY );

delete pmem->SelectObject(pold);

delete pmem;

return;

}

2、 显 示 全 屏 效 果

一 般 的 主 窗 口 都 有 边 界(border), 如 果 你 更 欣 赏DOS