我用ADO做数据连接,然后把程序做成动态连接库,运行出错! 但用BDE就不会,不知道怎么回事? 是不是DLL不支持ADO? 请大侠们赐教!!!

解决方案 »

  1.   

    不是DLL不支持ADO,运行出错一般是数据库组件在整个程序的运行时内存分配的问题,DLL不能调用自已的内存段,要在主程序中自己分配,你只要在主程序中加入相应的控件即可,这样还可以把相应的连结作参数传送。
      

  2.   

    procedure ShowForm(hOwner: hInst;MainConnection: TADOConnection);stdcall;
    begin
     try
      Application.Handle:= hOwner;
      Application.CreateForm(TDataModel, DataModel);
      DataModel.ADOTable1.Connection:=MainConnection;
      Application.CreateForm(TForm_Main, Form_Main);
      DataModel.ADOTable1.Open;
      Form_Main.ShowModal;
     finally
       DataModel.ADOTable1.Close;
       DataModel.free;
       Form_Main.Free;
     end;
    end;
    给分吧