VB
  dim g_ologin as object  
  Set g_ologin = CreateObject("Login.clsLogin")
  g_ologin.Login("DD")
  Set m_objPz = CreateObject("ZzPj.clsPj")
  Set m_objPz.zzLogin = g_ologin  这里运行正常
  m_objPz.StartUpDELPHI    clsID := ProgIDToClassID('Login.clsLogin');
   FobjLogin := CreateComObject(clsID) as IDispatch;
   FobjLogin.Login('DD');
   clsID := ProgIDToClassID('ZzPj.clsPj');
   FZzPz := CreateComObject(clsID) as IDispatch;
 
   FZzPz.ZzLogin := FobjLogin  ;  //提示 无效的参数数目
 
   FZzPz.StartUp ;      大家看看错在哪里了?

解决方案 »

  1.   

    自己解决了, FZzPz.ZzLogin = (FobjLogin) ;  这样就可以了,昏倒,那位大虾说说原因?
      

  2.   

    以前也遇到过,不过只要重新build一下Com就可以了
      

  3.   

    额,我也遇到楼主同样的问题了。不知道怎么解决。我的代码是
    procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
    var
      obj: Variant;
    begin
      obj := CreateOleObject('NsoOffice.NsoQuickStart');
      obj.StopOfficeService();
    end;
    一关闭程序就报“无效的参数数目”,唉,伤心!