利 用DLL 增 強 軟 件 功 能

來源:互聯網
上載者:User

---- 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     DemoDESCRIPTION ‘c++xyy DLL for Windows’EXETYPE     WINDOWSCODE            MOVEABLE DISCARDABLEDATA            MOVEABLE SINGLEHEAPSIZE        0EXPORTS   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++ 語 言 的 任 意 按 需 編 程 的 優 勢, 給 我 們 的 軟 件 開 發 帶 來 許 多 便 利。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.