var
  H: HMODULE;
  C: TPersistentClass;
begin
  H := LoadPackage('bpl_ComPerson.bpl');
  try
    C := GetClass('TmComperson');
    if C<>nil then
    begin
      with TFormClass(TComponentClass(C)).Create(Application) do
      begin
        ShowModal;
        Free;
      end;
    end
    else
      ShowMessage('asfsd');
  finally
    UnloadPackage(H);
  end;
 C := GetClass('TmComperson');
一直得到nil 有人知道是什么问题吗在BPL的窗体中已有注册
initialization
  RegisterClass(TmComperson);finalization
  UnRegisterClass(TmComperson);
已没分了 希望高人指点 一下

解决方案 »

  1.   

    检查一下是否有不同位置有多个
    bpl_ComPerson.bpl
    而你load的那个bpl并不是你想象中的那个,恰好那个bpl没有RegisterClass
      

  2.   

    我现在只是开始做测试,所以就只有一个BPL而已 路径也都有设定对了
    可以load到了 但就是到了getclass后 就不可以了同样这段代码给别人是没问题的或是别人建好工程代码写好给我,我用我电脑上的DELPHI BUILD过后得到的主程序EXE 就不能加载到了
      

  3.   

    至少应该对LoadPackage是否成功做检查
      

  4.   

    不知是不是DELPHI的设定问题 但要怎么设定呢,因为别人写好的代码 给我 一重BUILD 就不行了,都没变,再传给他 他再BUILD一次 又可以了
      

  5.   

    搞定了 是我自己之前的一个 PAS文件影响的,很怪 把那个PAS 去就可以了