D
delphi!!!
Unregistered / Unconfirmed
GUEST, unregistred user!
我想封装一个TfrmDemo=Class(TForm)到DLL
1、将TfrmDemo类封装到DLL
TfrmDemo= class(TForm)
public
{传入参数}
FPublicVarchar;
{接口函数}
procedure Save();virtual;
procedure Print();virtual;
end;
将TfrmDemo单元添加到DLL即可。
2、主程序通过调用DLL的初始化函数获得窗口实例的句柄
主程序声明TfrmDemo类:
TfrmDemo= class(TForm)
public
{传入参数}
FPublicVarchar;
{接口函数}
procedure Save()
virtual
abstract;{在DLL中定义的TfrmDemo含此函数的实现}
procedure Print()
virtual
abstract;{在DLL中定义的TfrmDemo含此函数的实现}
end;
并初始化
如frmDemo:=InifrmDemo
{InifrmDemo为DLL的窗口初始化函数}
3、主程序可以传递一些参数给frmDemo,如
frmDemo.FPublicVar:='Value from program. (Not DLL)';
4、主程序可以调用frmDemo的函数,如frmDemo.Print;
前面1、2都可以实现了,问题是第3、4步如何实现?
为什么我调用frmDemo.Caption返回正确,
而frmDemo.Print则出现Access Violation...错误?
frmDemo.FPublicVar也不能传递值给DLL?
请高手解答,谢谢!
1、将TfrmDemo类封装到DLL
TfrmDemo= class(TForm)
public
{传入参数}
FPublicVarchar;
{接口函数}
procedure Save();virtual;
procedure Print();virtual;
end;
将TfrmDemo单元添加到DLL即可。
2、主程序通过调用DLL的初始化函数获得窗口实例的句柄
主程序声明TfrmDemo类:
TfrmDemo= class(TForm)
public
{传入参数}
FPublicVarchar;
{接口函数}
procedure Save()
virtual
abstract;{在DLL中定义的TfrmDemo含此函数的实现}
procedure Print()
virtual
abstract;{在DLL中定义的TfrmDemo含此函数的实现}
end;
并初始化
如frmDemo:=InifrmDemo
{InifrmDemo为DLL的窗口初始化函数}
3、主程序可以传递一些参数给frmDemo,如
frmDemo.FPublicVar:='Value from program. (Not DLL)';
4、主程序可以调用frmDemo的函数,如frmDemo.Print;
前面1、2都可以实现了,问题是第3、4步如何实现?
为什么我调用frmDemo.Caption返回正确,
而frmDemo.Print则出现Access Violation...错误?
frmDemo.FPublicVar也不能传递值给DLL?
请高手解答,谢谢!