利 用DLL 增 强 软 件 功 能

---- Microsoft Windows 提 供 了 称 之 为 动 态 连 接 库 的 特 殊 库(DLL), 让 应 用 程 序 共 享 代 码 和 资 源。DLL 是 一 个 包 括 了 若 干 函 数 的 可 执 行 模 块, 为 其 他 应 用 程 序 提 供 服 务。Windows 利 用DLL 来 提 供 所 有Windows 应 用 程 序 均 可 以 使 用 的 代 码 和 资 源。 此 外, 应 用 程 序 也 可 以 创 建 自 己 的DLL, 在 自 己 的 各 个 应 用 程 序 之 间 共 享 代 码 和 资 源。

---- DLL 主 要 有 如 下 目 标:

  • 应 用 程 序 之 间 共 享 代 码 和 资 源
  • 基 于 系 统 范 围 的 消 息 过 滤
  • 创 建 设 备 驱 动 程 序
  • 提 供 开 发 复 杂 应 用 程 序 的 设 施

---- 我 们 现 在 要 研 究 的 问 题 是, 如 何 通 过 开 发DLL 来 拓 展、 增 强 常 用 软 件 的 功 能, 如:VB4.0、ToolBook3.0 等。

---- 常 用 来 开 发DLL 的 平 台 有BlandC++、MS VisualC++, 二 者 之 间 在 开 发DLL 是 有 一 定 的 差 别, 但 最 方 便 的 是MS VisualC++。 这 里 我 们 利 用MS VisualC++ 开 发 一 个Demo.DLL, 它 定 义 一 个 函 数:F1=(x,y)=x*y。 通 过 这 个 实 例 说 明DLL 的 程 序 结 构, 再 通 过 对Demo.DLL 的 调 用 说 明 增 强 软 件 功 能。

---- 实 例:

---- 在Demo.DLL 中 定 义 一 个 F1(x,y)=x*y ;

---- 总 共 需 要 三 个 文 件:Demo.h ;Demo.c;Demo.DEF

* 在 头 文 件(Demo.h) 中:
#include < windows.h >
extern int_export_far_pascal F1(int,int);
* 在 源 程 序(Demo.c) 中:
#include< windows.h >
#include“Demo.h”
int FAR PASCAL LibMain(HINSTANCE hInstance,
WORD wDataSegment,
WORD wHeapSize,
LPSTR lpszCmdLine)
{
   return 1;
}
int _export_far_pascal F1(int X,int Y)
{
int data;
data=X*Y;
return data;
}
int FAR PASCAL WEP(int bSystemExit)
{   return 1;
}
* 在 模 块 文 件(Demo.def) 中:
LIBRARY     Demo
DESCRIPTION ‘c++xyy DLL for Windows’
EXETYPE     WINDOWS
CODE            MOVEABLE DISCARDABLE
DATA            MOVEABLE SINGLE
HEAPSIZE        0
EXPORTS
   F1@1

---- * 在VB 使 用DLL :

---- 在 调 用 之 削 首 先 要 在MODULE 模 块 中 声 明 函 数, 声 明 的 格 式 是:

Declare Function 函 数 名
 Lib“DLL 名”(Byval 参 数 As Datatype,,)
Declare Function F1 Lib“Demo”(ByVal X As Integer,
ByVal X As Integer)As Integer

---- 然 后 就 可 以 在 任 何 地 方 使 用 函 数F1()。

---- * 在ToolBook3.0 中 使 用DLLs:

---- 在 调 用 之 前 首 先 要 连 接DLL, 并 声 明 函 数 原 型, 声 明 的 格 式 是:

link DLL “Demo.dll”
         函 数 类 型     函 数 名( 参 数 类 型,,)
        INT F1(INT,INT)
end linkDLL

---- 利 用 以 上 方 法 可 以 方 便 地 开 发DLL, 用 来 拓 展vb4.0、ToolBook3.0、Delphi1.0 等 大 部 分 软 件 的 功 能, 使 其 功 能 更 加 强 大, 比 如: 实 现 对 非 标 准 硬 件 的 控 制、 满 足 要 求。 这 样 我 们 即 利 用 了 新 型 软 件 的 可 视 化 对 象 编 程, 又 结 合 了C++ 语 言 的 任 意 按 需 编 程 的 优 势, 给 我 们 的 软 件 开 发 带 来 许 多 便 利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值