个人认为与远程对象无关,问题的本质似乎应这样描述:如何在DLL中使用ActiveX?

解决方案 »

  1.   

    ADO是基于COM的,所以应该有初始化COM库。
    uses Comobj,Activex;
    initialization
      Coinitialize(nil);
    finalization
      Counitialize();
    end;
      

  2.   

    to blackfiles(从来是我伤心) :
    用ADO连接数据库,作DLL调用Form时,是否一定要用到ActiveForm,一定人初始化COM库(uses ComServ.pas)?
    请教!
      

  3.   

    我说的就是在DLL中,包含ADO的做法。
    你说做DLL调用Form,是指什么?做了DLL,都可以用程序调用啊。
      

  4.   

       感谢blackfiles(从来是我伤心)!!谢谢!!!
       问题已经解决,只是在导出函数开始加了一句“Conitialize(nil);”(当然包入了两个单元文件)。还要请教一下,initialization部分通常放在单元文件的哪个位置?您给的代码中“Counitialize();”是不是写错了?
       再次表示感谢,谢谢!!
      

  5.   

    //代码全在这了,共享!共享了!!
    library Project1;uses
      SysUtils, Classes, Unit2, Comobj, Activex;{$R *.res}function ShowDlg(AHandle:THandle):word;StdCall;
    begin
      CoInitialize(nil);
      Form1:=TForm1.Create(nil);
      Form1.Show;
      Result:=0;
    end;exports
      ShowDlg;begin
    end.