事先申明此dll要给其他系统调用的

解决方案 »

  1.   

    事先申明此dll要给其他系统调用的
      

  2.   

    我们习惯于这样用,
    1、首先,在动态库导出函数不能用控件作变量(其实你不给其它开发工具也可用,这样你的dll就没有好的移植性了)
    2、数据库的设定使用时间库控件,还要用到数据库会话(区别于其它模块的数据库连接),数据库控件使用驱动程序连接,不要使用别名连接
    3在动态库开始的时候这样
    liblriy xxx
     
    uses
       myform1,myform2..,
       mydm;//数据库模块
    function runxx1:Tshowmdaol;
              begin
             result:= TmyForm1.create(nil).showmode;         
              end;
    function   initdatabasemd:boolean;
               begin
               mydmvar:=Tmydm.create(nil);
               with mydmvar do 
                  begin
         loaddbparmas('ini文件,或者注册表的建',database1.params);
          //自己编一个存取数据库登录信息的函数,不限于mssql
              try
             database1.connected=true;
              result:=xxx              
                //麻烦         ...    
               end;           
    end;
      exports 
        runxx1,
        runxx2,
        freedatabasemd;
      begin
      initdatabasemd;
      end;