您的位置:首页 > 手游攻略 > 插件管理框架 for Delphi(一)实用指南

插件管理框架 for Delphi(一)实用指南

作者:互联网  时间: 2026-09-03 09:10:01  

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“插件管理框架 for Delphi(一)”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。


在这个场景下,插件技术的出发点主要是为了使软件能够灵活地进行扩展功能,而不需对主程序(框架程序)进行重新编译和发布。它的原理相当轻松。软件的功能由框架程序和插件来决定。在框架程序和插件之间具有一个特定的接口,它们两者须借助这个接口来传递数据或控制信息,以实现软件功能。所以,只要符合该接口的程序(或其他功能实体),就称为该框架程序的插件。
从实现思路看,插件实体一般分为两种,一种是包含逻辑的程序,比如动态库、Exe程序等;另一种则是一组设置信息。前一种方式多见于作图软件,媒体播放软件,适合实现复杂的功能;后一种方式多用来实现软件的Skin(皮肤)功能,以及其他一些不需进行复杂运算的功能模块(有许多游戏软件的关卡也是采用此种方式实现,比如阿达软件的连连看)。
落到代码里,本篇给出在实现Dll插件方式框架程序的过程中,对Dll进行管理的框架程序及采用例子,作为读者进行插件程序设计的基础。具体而言,框架程序需完成插件的装载、功能调用以及卸载三类功能。
结合项目来看,其实每个控制面板程序,都是操作系统的插件。因为每个.cpl文件就是实现了特定接口的Dll。Windows的服务程序也是如此,它也只是在原有程序的基础上处理了特定的windows消息而已。
落到代码里,其实从广义上讲,每个运行在操作系统上的程序都是操作系统这个软件的“插件”。
结合项目来看,其实在Delphi中,已经有一个插件管理的框架,那就是bpl。采用bpl组件包的方式也能够轻松实现功能的插件化扩展。只是该方式有个缺点:不兼容其他开发工具(如vb、vc++)进行插件开发。

untDllManager单元中定义了两个基础的类:
TDll:所有Dll类的父类,提供了装载、卸载的相关操作;
TDllManager:Dll类的容器类。兼容删除元素方式卸载Dll实体。
以下为类图:

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4