我自编写一个DLL文件,能正常调用并使用,可是退出时出错,如何正确释放DLL
function  LogouserDBSS(UserDBS:TADOQuery;Combo1:TComboBox):string;stdcall;external 'LogouserDBS.dll' name 'LogouserDBSS';

解决方案 »

  1.   

    注意资源的释放顺序,使用了String类型,请使用ShareMem
      

  2.   

     你這兩個傳入的類的釋入是如何的?? 還有DELPHI對STRING的處理,建議PCHAR, 加BORLANDMM.DLL .   帶SHAREMEM單元。
      

  3.   

    我引用了sharemem 这个单元
    声明如下:
    function RandomDPRS1(var img:Timage):string;stdcall;
    var
      I,j,k:   Integer;
      vPoint:   TPoint;
      

  4.   

    function RandomDPRS1(var img:Timage):pchar;stdcall;external 'RandomDPRS.dll' name 'RandomDPRS1';
    function  LogouserDBSS(UserDBS:TADOQuery;Combo1:TComboBox):string;stdcall;external 'LogouserDBS.dll' name 'LogouserDBSS';
      

  5.   

    应该是dll里面的代码有点小问题不释放 不会出错的吧
      

  6.   

    DLL里的程序是一个自定义函数,我将其放到主程序中编译运行就不会出错
    而将其改成一个DLL文件后,在主程序中调用这个DLL文件就出现这个错误