报表的插件技术及其动态设计(3)
作者:佚名; 更新时间:2014-12-03
begin
@InitProc:=GetProcAddress(L.bHandle,InitPlugin’):
irAssigned(InjtProc)then
begin
ListBox2.Items.Addfsr.Name);
initproc(1istbox1);
end
else
begin
MessageDlg(’文件”’+sr.Name+…不是一个合法的插件’,
mtlnformation,[mbOK],0):
end;
end
else
MessageDlg(’导入插件…+sr.Name+”’时发生严重错误!’,
mtError,[mbOK],0):
end;
LoadPlugin方法展示了插件机制的核心。首先,插件被写成DLL。其次,通过LoadLibraryAPI被动态地加载。一旦DLL被加载,就需要一个访问它所包含的过程和函数的路径。API调用GetProcAddress提供这种机制,它返回一个指向所需例程的指针。在这个简单的演示中,插件仅仅包含一个名为InitPlugin的过程,信捷职称论文写作发表网,如果在DLL中没有找到请求的例程,GetProcAddress将返回n|l,这样就允许使用Assigned函数测定返回值。
为了以一种易用的方式存储指向一个函数的指针,有必要为用到的变量创建一个特定的类型。注意,GetProcAddress的返回值被存储在一个变量中,initproc属于TPluginInit类型。下面是它的声明:
上一篇:用移频技术解决土挡的安全防护问题
下一篇:高速织机综框的动态特性分析与设计