在dll中创建一个窗口,里面包含adoconnect,adoquery组件,但在应用程序里调用这个窗口的时候为什么会出现这样的提示错误,
project raised exeception class EOleSysError with message"尚为调用coinitialize"  为什么啊

解决方案 »

  1.   

    好象是用了com,要初始化com什么的了,具体记不清了。
    反正是要在你程序中要先调用一个过程!
      

  2.   

    找些com相关的资料看看应该就知道了!
      

  3.   

    dll中的ado要调用 CoInitialize
    创建ado之前
    CoInitialize(Nil);
    结束后
    CoUninitialize;
      

  4.   

    你是在窗体中创建ado的吧?
    如果是的话就创建窗体前CoInitialize(Nil);窗体free后CoUninitialize;
      

  5.   

    library P;
    uses
      SysUtils,
      Classes,forms,
      Udll in 'Udll.pas' {dllform};function showform:integer;stdcall;
    var
      form:tdllform;
    begin
      coinitialize(nil);
      form:=tdllform.create(application);
      result:=form.showmodal;
      form.free;
      couninitialize;
    end;
    exports
      showform;
      {$R *.res}
    begin
    end
    这样不行,它都不知道coinitialize和couninitialize是什么,编译不了
      

  6.   

    uses
      SysUtils,
    ActiveX
      Classes,forms,
      Udll in 'Udll.pas' {dllform};
      

  7.   

    uses
      SysUtils,
      ActiveX,
      Classes,forms,
      Udll in 'Udll.pas' {dllform};