数组作为dll内某函数的变参传递

解决方案 »

  1.   

    to milanqin;
       没有用,只要使用了freelibray(h),数组会自动跟着释放。thankyou
      

  2.   

    你是不是在DLL里面DISPOSE了该数组的指针啊?
      

  3.   

    没有,我没有使用指针。thank you.
    后来我发现,无论是动态还是固定数组,只要作为地址传递并在dll内作了修改(如果不作修改,不会出现这个问题),         freelibray(h)
    //释放dll后,数组也跟着释放。
    可能是我在dll内对数组进行重新附值时,付值的方式不对。但我找不到有效的方式。
      

  4.   

       因为dll释放时会将它的资源全部释放, 如果你在释放dll前将dll里使用数组的那些指针置空,应该就不会被释放了。 试试看!
      

  5.   

    请问我正常调用 
    function Aa(var Str:String):String;stdcall;external 'func.dll' name 'mylib';
    为何我在使用这个动态链接库的时候会出现错误,是不是与我没有把他释放有关,还有我想请问,是不是调用了就得释放呢?