国产探花免费观看_亚洲丰满少妇自慰呻吟_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 主站蜘蛛池模板:
原阳县
|
巩义市
|
玉溪市
|
黎平县
|
邵东县
|
大港区
|
象州县
|
佛教
|
汤原县
|
万源市
|
搜索
|
南阳市
|
安宁市
|
海南省
|
常宁市
|
大新县
|
石屏县
|
拜城县
|
无锡市
|
涟水县
|
桂林市
|
永嘉县
|
姚安县
|
东港市
|
海宁市
|
武定县
|
商丘市
|
无锡市
|
嘉兴市
|
璧山县
|
东乡县
|
台南县
|
富平县
|
滦平县
|
微山县
|
金溪县
|
岱山县
|
清徐县
|
正宁县
|
陆丰市
|
鸡东县
|