关于Delphi中DLL封装对象的几种方法整理及体会
Delphi用DLL来封装对象的技术主要有三种:
- 用接口实现
- 用纯虚和抽象类方法实现
- 用类引用实现
- 调用方只能调用封装类中的virtual方法;
- 调用方和提供方都必须提供类的描述,接口实现中需要提供接口描述(COM方法例外);
- 不能创建DLL包含对象的派生类(接口派生除外)。
下面用一个例子来展示所以上面提到的集中方法。
调用方主要文件列表为:
- UnitMain.pas 调用DLL的界面
- UnitPublic.pas 第二种方法在调用端的类描述文件
- UnitIDest.pas 接口方法和类引用方法的类描述文件
- IncDemo.inc 利用inc文件实现的类描述文件
DLL工程主要文件列表为:
- ProDLLDemo.dpr DLL工程文件
- UnitDLLDemo.pas 所有类实现部分的文件
- UnitIDest.pas 接口方法和类引用方法的类描述文件
- IncDemo.inc 利用inc文件实现的类描述文件
在方法的归纳上如有遗漏,有请指教。
UnitMain.pas 源代码:
unit UnitMain; |
UnitPublic.pas源代码:
unit UnitPublic; |
UnitIDest.pas源代码:
unit UnitIDest; |
IncDemo.inc源文件:
type |
ProDLLDemo.dpr源文件:
library ProDLLDemo; |
UnitDLLDemo.pas源代码:
unit UnitDLLDemo; |
[参考文献]:
1. Delphi面向对象编程思想,第8章,刘艺, 2003.9, 机械工业出版社.
2. Delphi 6 Developer‘s Guide, p209, Steve Teixeira, SAMS, 2001.