如何在dll中封装类,并将其输出?(50分)

  • 主题发起人 主题发起人 killghost
  • 开始时间 开始时间
K

killghost

Unregistered / Unconfirmed
GUEST, unregistred user!
unit a
type
THello=class(TObject)
public
function Hello:Integer;
end;

function DLL_Hello:Integer;stdcall;external 'hello.dll';name 'hello';

function THello.Hello:Integer;
begin
Result:=DLL_Hello;
end;
 
问题自己解决了
 
这下省下了50分,不过结果可以共享出来呀!
 
解决方法是在
dll中调用一个输出函数,输出一个该类的实例即可。
关键点:在dll中类的函数定义个时候要使用virtual方法
在调用该dll的函数中要使用virtual;abstract;
否则编译不能通过。
 
详细资料如下,希望对你有用!!:)

关键点:在调用dll的可执行程序中对类的函数的申明必须使用virtual和abstract;
在dll中的申明时,仅需用virtual;

例子:
exe中的申明:
type
Thello=class(Tobject)
public
a:integer;
b:integer;
function addone():integer;virtual;stdcall;abstract;
private
c:integer;
end;

dll中的申明:
type
Thello=class(Tobject)
public
a:integer;
b:integer;
function addone():integer;virtual;stdcall;
private
c:integer;
end;

导出函数:
function exep_hello:Thello;
begin
result:=Thello.Create;
end;
 
如果用接口的话就不用再次申请类定义了
 
后退
顶部