为什么我一用ADO组件就报错!

解决方案 »

  1.   

    我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的函数来创建这窗体是,就报"Exception EOleSysError in module Project1.dll at 0063515"的错误.这是怎么回事.只要换成BDE数据控件就没事了.
      

  2.   

    非常肯定的告诉你可以用
    我做了好几个了
    你的program单元了是不是有ado啊
    弄出去
      

  3.   

    老兄:帮帮忙你是怎么实现的我在DLL中放了个窗体(Form1),窗体中只放了个ADOConnection1控件。在DLL中我写了个函数如下:
    procedure createform() ;
    begin
    Form1:=TForm1.Create(application);
    end;当另外一个程序来调用DLL中的函数createform来创建(Form1)这窗体是,就报"Exception EOleSysError in module Project1.dll at 0063515"的错误.
    这是怎么回事.只要我把ADOConnection1控件删掉,就没事了.
      

  4.   

    应当把ADOConection设置成多线程模式
      

  5.   

    我是在dll源文件中引用了:
    use comobj;
    function ShowForms():boolean;stdcall
    var
      frmTest : TForm1;
    begin
      ComObj.CoInitializeEx(nil,0);  //这里使用了其中的函数,但是具体的含义我不是特别清楚,印象中vc使用ole的时候也要用该函数进行初始化作业
      frmTest := TForm1.Create(Application);
      frmTest.ShowModal;
      frmTest.Free;
    end;
      

  6.   

    一定要
    uses  ActiveX
    因为ADO控件属于ActiveX类function FormCreate():PChar;stdcall;
    begin
      Result:='1';
      try
        CoInitialize(nil);
        FormXYZ:=TFormXYZ.Create(nil);
      except
        Result:='0';
      end;
    end;function FormFree():PChar;stdcall;
    begin
      Result:='1';
      try
        FormXYZ.Free;
        CoUninitialize;
      except
        Result:='0';
      end;
    end;
    我的例子,可以用的~!
      

  7.   


         我能救你!!!
         我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的     关键是:“另外一个程序” 必须 use adodb,cd
      

  8.   

    我能救你!!!
         我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的     关键是:“另外一个程序” 必须 uses adodb,db 之类
      

  9.   

    bcghb() 说得对, 因为 ado是一组ActiveX,在dll中调用时,必须先用 CoInitialize(nil);
    初始化