国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

初探Delphi中的插件編程

2020-01-31 20:52:31
字體:
來源:轉載
供稿:網友
插件結構的編程需要一個插件容器來控制各DLL的運行情況,將劃分好的每個子系統安排到一個DLL庫文件中。對每個DLL程序需要為容器預留接口函數,一般接口函數包括:啟動調用DLL庫的函數、關閉DLL庫的函數。通過接口函數,插件容器可以向DLL模塊傳遞參數實現動態控制。具體實現細節我將在下文說明并給出響應代碼。

  您可能需要先了解一下DELPHI中UNIT的結構,工程的結構。本文沒有深入討論DLL編程的理論細節,只是演示了一些實用的代碼,我當時學習的是劉藝老師的《DELPHI深入編程》一書。

  我也處于DELPHI的入門階段,只是覺得這次的DLL開發有一些值得討論的地方,所以寫這篇文章,希望各位能對我做的不好的地方慷慨建議。

  示例程序簡介

  為了便于閱讀我將使用一個MIS系統的部分程序代碼演示插件編程的一些方法。示例程序是典型的C/S結構DBMS應用程序,我們關注的部分將是框架程序(下文簡稱Hall)的控制語句和dll插件程序的響應控制。

  1、程序結構

  插件容器Hall使用一個獨立的工程創建,Hall的主窗口的作用相當于MDI程序中的MDI容器窗體,Hall中將顯式調用Dll中的接口函數。
每個插件程序獨立使用各自的工程,與普通工程不同的是,DLL工程創建的是Dll Wizard,相應編譯生成的文件是以DLL為后綴。






  2、接口設計

  實例程序Narcissus中我們預留兩個接口函數:

  ShowDLLForm

  該函數將應用程序的句柄傳遞給DLL子窗口,DLL程序將動態創建DLL窗體的實例。還可以將一些業務邏輯用參數的形式傳遞給DLL子窗口,比如窗體名稱、當前登陸的用戶名等。初次調用一個DLL窗體實例時使用此函數創建。

  FreeDLLForm

  該函數將顯示釋放DLL窗口實例,在退出應用程序時調用每個DLL窗體的FreeDLLForm方法來釋放創建的實例,不然會引起內存只讀錯誤。同樣,也可以將一些在釋放窗體時需要做的業務邏輯用參數的形式傳遞給DLL窗體。

  3、調試方式

  DLL窗體程序無法直接執行,需要有一個插件容器來調用。應此我們需要先實現一個基本的Hall程序,然后將Hall.exe保存在一個固定的目錄中。對每個DLL工程做如下設置:

  1) 打開DLL工程

  2) 選擇菜單 Run 主站蜘蛛池模板: 原阳县| 巩义市| 玉溪市| 黎平县| 邵东县| 大港区| 象州县| 佛教| 汤原县| 万源市| 搜索| 南阳市| 安宁市| 海南省| 常宁市| 大新县| 石屏县| 拜城县| 无锡市| 涟水县| 桂林市| 永嘉县| 姚安县| 东港市| 海宁市| 武定县| 商丘市| 无锡市| 嘉兴市| 璧山县| 东乡县| 台南县| 富平县| 滦平县| 微山县| 金溪县| 岱山县| 清徐县| 正宁县| 陆丰市| 鸡东县|