Dll中导出类--Delphi实战之一[6]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 musicwind 的 blog

       这一步相对来说容易些——无非是动态加载dll,然后调用getclasscount函数,接着调用getclassbyindex。关键的代码:

       var aclass: tmybaseclass;

       aform: tmybaseform;

i, icount: integer;

blresult: boolean;

begin

  //略去加载动态库的部分,假定fpgetclassproc指向getclasscount函数,fpgetclassbyindexproc指向getclassbyindex,则:

  icount := fpgetclassproc;

  for i := 0 to icount ╟ 1 do

  begin

    aclass := fpgetclassbyindex(i, blresult);

       if blresult then

    begin

      aform := aclass.create(application);

      aform.caption := aform.gettitle;

      aform.show;

    end;

  end;

//…

end;

       注意一点,和dll相似,创建输出文件的时候,也需要选择使用运行时间包。这是因为,如果不使用运行时间包,将导致相同的类在内存中有多个副本,因而对它们使用is操作符的将返回false的结果。

 

本文关键:Dll 导出 类 Delphi 实战 Musicwind
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top