请问各位如何在Delphi中调用VB编的ActiveX DLL?我的ActiveX DLL在Delphi中找不到函数入口点。

解决方案 »

  1.   

    VB的ActiveX DLL是一个COM,在Delphi里面应该当它为COM组件来应用它提供的接口.
      

  2.   

    可以使用Project Menu下的Import Type Library...对该组件Create Unit.
      

  3.   

    DELPHI调用VB的ACTIVEX DLL有两种引用方法,下面举个例子说明:假设现在有个叫MyHome.DLL的ACTIVEX组件,里面分别有普通的类Dog和Cat(也可以是接口IDog或ICat),则在DELPHI里调用它有两种方法1)静态引用
      用Delphi里的[Project]菜单里的Import Type Library项里选中MyHome.dll,然后直接点击INSTALL按钮.则DELPHI会自动把MyHome.Dll封装并产生一个VCL安装包,只要点击Install就行了.然后在DELPHI的VCL组件栏里的ACTIVEX页里你可以见到增加了两个新的VCL组件:Dog和Cat
    ,使用的时候只要象普通的VCL那样用,拖出到窗口就行了.2)动态引用
      用DELPHI里的[Project]菜单里的Import Type Library项里选中MyHome.dll,直接Create Unit.Delphi会自动为MyHome.DLL自动产生一个MyHome_TLB.dcu文件.使用时在USES段加上对MyHome_TLB,然后再对其接口进行声明,然后CREATE一次对象就OK了!怎样用?看下例:
      
      1)先建立一个Application应用程序
      2)在FORM1上添加一个按钮
      2)在代码单元里(UNIT1.PAS)里的更改如下:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls,MyHome_TLB;
               ^^^^^^^^^^^
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      MyDog:_Dog;   //声明使用接口
    begin
      MyDog:=CoDog.create; //实例化一个接口
      MyDog.Name="BOBO";   //设置属性值
      MyDog.Age="8";
      MyDog.Run;           //调用接口的方法
    end;end.      DELPHI调用VB DLL的方法就介绍到此了.本人以前也提过类似问题,后来还是得不到解答.
    现在这个方法是本人摸了很久自己摸出来的,希望能帮到各位有需要的朋友,如果有不正之处也
    请各位高手多多指点.