知识大全 Dll 中导出类 --Delphi 实战[1]
Posted 类型
篇首语:读书忌死读,死读钻牛角。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Dll 中导出类 --Delphi 实战[1]相关的知识,希望对你有一定的参考价值。
Dll 中导出类 --Delphi 实战[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
从 Dll 中导出类 想必大家首先想到的是使用 bpl 包 这种方式有一个不好 那就是使用者必须清楚这个包中含有那些类 也就是说必须知道类的名字 这在一定意义上是个限制 试想一种情况 使用者定义了一个底层的抽象类 (abstract class) 然后在此基础上定义了许多应用类 (concrete class) 那么 对于使用者来说 他希望在不知道具体有哪些类的情况下能使用这些类 这么说似乎有些玄 但实际情况确实如此 因为定义抽象类的时候并不能预料到以后会有多少个具体类 那么这样的需求 要靠什么样的技术来实现呢?
其实实现的技术的难度并不大 作者在此将自己实践的经验献给大家 算作抛砖引玉 希望能看到其他更好的方法!
以下先介绍该方法涉及的一些基础知识 然后用一个例子来说明具体的实现
一 基本概念
元类 (meta class) 也叫类引用类型 (class reference type) 可以看成是一种类的类型 以该类型声明的变量的值代表一个类 比如 : type
TClass = Class of TObject;
这样就声明了一个元类的类型 然后可以有这样的变量声明 :
Var
AClass: TClass;
那么 就可以有这样的用法 :
AClass := TObject;或者 :
AClass := TButton;或者 :
AClass := TForm;等等
因为 TClass 是一个 TObject 类型的元类 而 TButton TForm 等都是自 TObject 派生而来 因而 TButton 和 TForm 这样的值对于 AClass 都是可接受的
然后 我们就可以运用多态的思想 灵活运用 AClass 这个类变量了 而这一点也正是下文具体实现的基础知识
二 具体实现
第一步 建立一个抽象类 :
我们使用这样一个简单的声明 该抽象类只提供了一种抽象方法 但并不影响我们描述问题 :
TMyBaseForm = Class(TForm)
protected
function GetTitle: pchar; virtual; abstract;
end;
MyBaseFormClass = Class of TMyBaseForm;
cha138/Article/program/Delphi/201311/24861相关参考
Dll中导出类--Delphi实战[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当然在该
知识大全 Delphi 中动态链接库(dll)的建立和使用[1]
Delphi中动态链接库(dll)的建立和使用[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Delphi学堂之用Delphi制作DLL小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一Dl
知识大全 Delphi 中动态链接库(dll)的建立和使用[2]
Delphi中动态链接库(dll)的建立和使用[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 如何在Delphi中调用.Net编写的DLL中的函数
如何在Delphi中调用.Net编写的DLL中的函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Delphi向Word中导出数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据导出到wor
骆驼沙漠之舟的什么本领在动物中是出类拔萃的骆驼是反刍动物,所以紧接在真胃的前面有三个室,其中最大的一个是瘤胃。由于在解剖上不同于其他普通反刍动物的瘤胃,里面有许多肌肉带,而这些肌肉带可以把瘤胃分隔成几
dll文件有什么方法可以查看源代码?有几个dll文件别人给的,想看看里面代码是具体怎么写的?大神啊!DLL变成高级语言的过程叫反编译(不是反汇编...两者区别很大)....C/C++DLL别想了...
Windows群集开发:6)编写资源DLL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 编写资
怎么检视dll函式vs20101.开启命令列视窗CMD2.执行vcvarsall.batVS2010里vcvarsall.bat是在右键VS开启档案位置,D:\\MicrosoftVisualStud