a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > 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 主站蜘蛛池模板: 91在线免费观看 | 欧美日韩精品一区二区在线播放 | 亚洲精品久久久日韩美女极品合集下载 | 操人在线观看 | 欧美精品区 | 久久久99精品免费观看 | 色呦呦在线视频 | 日韩一区二区在线视频 | 国产噜噜噜噜噜久久久久久久久 | 在线视频国产一区 | 欧美日韩精品 | 最新国产中文字幕 | 国产免费又色又爽粗视频 | 日韩精品在线观看一区 | 欧美久久久久 | 国产高清久久久 | 国产综合在线视频 | 精品久久久久一区二区国产 | 久久久久国产精品视频 | a级片在线免费观看 | 中文字幕在线观看www | 韩国精品视频在线观看 | 日韩在线欧美 | 亚洲成人一区在线观看 | 国产麻豆乱码精品一区二区三区 | 国产精品视频999 | 日韩免费一区二区 | 97色在线视频 | 精品视频在线观看一区二区 | 午夜av成人 | 狠狠亚洲| 中文字幕一区在线观看视频 | 一区二区视频网站 | 欧美日韩中文在线 | 国产精品视频网站 | 色丁香婷婷 | 精品一区二区国产 | 色噜噜视频 | 亚洲精品久久久久久久久久久 | 一区二区三区欧美 | 国产精品第一区 |