知识大全 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]

Dll中导出类--Delphi实战[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当然在该

知识大全 Delphi 中动态链接库(dll)的建立和使用[1]

Delphi中动态链接库(dll)的建立和使用[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Delphi学堂之用Delphi制作DLL小结

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中导出数据

Delphi向Word中导出数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据导出到wor

知识大全 骆驼沙漠之舟的什么本领在动物中是出类拔萃的

骆驼沙漠之舟的什么本领在动物中是出类拔萃的骆驼是反刍动物,所以紧接在真胃的前面有三个室,其中最大的一个是瘤胃。由于在解剖上不同于其他普通反刍动物的瘤胃,里面有许多肌肉带,而这些肌肉带可以把瘤胃分隔成几

知识大全 dll文件有什么方法可以查看源代码

dll文件有什么方法可以查看源代码?有几个dll文件别人给的,想看看里面代码是具体怎么写的?大神啊!DLL变成高级语言的过程叫反编译(不是反汇编...两者区别很大)....C/C++DLL别想了...

知识大全 6)编写资源DLL

Windows群集开发:6)编写资源DLL  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  编写资

知识大全 怎么检视dll函式 vs2010

怎么检视dll函式vs20101.开启命令列视窗CMD2.执行vcvarsall.batVS2010里vcvarsall.bat是在右键VS开启档案位置,D:\\MicrosoftVisualStud