文件名称:notblack_DllClass
介绍说明--下载内容均来自于网络,请自行研究使用
嘿嘿,大侠看到不要见笑呀...
大家都知道使用DLL的好处.于是我就想把FORM封装到DLL里面去.
到网上找,发现是MDI和模式窗体的,非模式的也有很多问题.便想自己解决这个问题.
原来是用DLL创建一个对象返回,但发现有很多的问题.
想了半天就去寻根问柳吧.
找到了类.
我就想把类封装进DLL,到时简单的返回一个类,然后在主程序里操作不就简单了?
找了半天发现了TFormClass,于是试了试从DLL导出来,像一般的程序一样创建窗体发现成功.
接着我又想看看其他的类是不是也能这样,就拿Tfr a me来实验.
function GetDllfr a meClass():Tfr a me stdcall
第一次是这样声明的,失败.奇怪?!
试了好多次都不行,就想到了TFormClass(Ctrl+左键),进去看看,发现是这样声明的.
TFormClass = class of TForm
哎呀,恍然大悟!!
class(Tfr a me) 是声明一个类, 这个类继承了Tfr a me类 f: Tfr a me 是一个对象
class of Tfr a me 声明的是类类型, f:Tfr a meClass 是一个类.
function GetDllfr a meClass():Tfr a me
返回就不是类而是对象了,照TFormClass修改后Tfr a meClass = class of Tfr a me
运行...成功,
大家都知道使用DLL的好处.于是我就想把FORM封装到DLL里面去.
到网上找,发现是MDI和模式窗体的,非模式的也有很多问题.便想自己解决这个问题.
原来是用DLL创建一个对象返回,但发现有很多的问题.
想了半天就去寻根问柳吧.
找到了类.
我就想把类封装进DLL,到时简单的返回一个类,然后在主程序里操作不就简单了?
找了半天发现了TFormClass,于是试了试从DLL导出来,像一般的程序一样创建窗体发现成功.
接着我又想看看其他的类是不是也能这样,就拿Tfr a me来实验.
function GetDllfr a meClass():Tfr a me stdcall
第一次是这样声明的,失败.奇怪?!
试了好多次都不行,就想到了TFormClass(Ctrl+左键),进去看看,发现是这样声明的.
TFormClass = class of TForm
哎呀,恍然大悟!!
class(Tfr a me) 是声明一个类, 这个类继承了Tfr a me类 f: Tfr a me 是一个对象
class of Tfr a me 声明的是类类型, f:Tfr a meClass 是一个类.
function GetDllfr a meClass():Tfr a me
返回就不是类而是对象了,照TFormClass修改后Tfr a meClass = class of Tfr a me
运行...成功,
(系统自动生成,下载前可以参看下载内容)
下载文件列表
Bin
...\Dll.dll
...\Main.exe
Dll
...\Dll.dof
...\Dll.dpr
...\Dll.res
...\Unit1.dfm
...\Unit1.pas
...\Unit2.dfm
...\Unit2.pas
Main
....\Main.dof
....\Main.dpr
....\Main.res
....\Unit1.dfm
....\Unit1.pas
ReadMe.txt
...\Dll.dll
...\Main.exe
Dll
...\Dll.dof
...\Dll.dpr
...\Dll.res
...\Unit1.dfm
...\Unit1.pas
...\Unit2.dfm
...\Unit2.pas
Main
....\Main.dof
....\Main.dpr
....\Main.res
....\Unit1.dfm
....\Unit1.pas
ReadMe.txt