dephi7动态加载bpl里面的类失败 ( 积分: 100 )

  • 主题发起人 主题发起人 apathyboy
  • 开始时间 开始时间
A

apathyboy

Unregistered / Unconfirmed
GUEST, unregistred user!
动态加载bpl
我在程序中用LoadLibary加载bpl成功(返回非0句柄)
然后用GetClass去获取类,但是每次都返回nil
我在bpl包里面也有对类进行注册,
有没有人知道原因呢
 
PackageHandle := LoadPackage('BPL.bpl');
AClass := GetClass('TfrmBPLForm');
if AClass <> nil then begin
Application.CreateForm(TComponentClass(AClass), AForm);
AForm.Show;
end;
 
我的做法也是这样,但是返回回来的AClass是nil的,我想知道有什么会影响到这个返回结果,我确定在bpl对这个Class进行过注册,而且也确认过bpl的加载是正确的
 
那是要在BPL里先要注册,然后再用我们后面的调用就行了。
 
我在类的单于中已经对类注册过了。除了这个原因,还有其他可以导致出错的么?
 
'TfrmBPLForm'要注册..有没有注册
 
例如象这样:
procedure Register;
begin
RegisterComponents('WiseONE', [TfrmSMD0008Main])
end;
 
主程序设为build with runtime packages,运行通过
 
to SFG:
我是用RegisterClass在bpl里面对类进行注册的

to HNXXCXG
我主程序倒没有设置成build with runtime packages,晚上试验下

如果可以,晚上就来散分
 
我给你解决。
在BPL窗体的最后面 end的前面写语句:
initialization
RegisterClass('TfrmBPLForm');
记住选中Rutime Package!!!
 
除了runtime packet,注册上我应该是没错的
 
问题解决了吧
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部