to baddy(小麦):你能详细解释一下“动态库的调用方式”吗?

解决方案 »

  1.   

    to ymkj(ymkj):如果声明有问题,为什么调用成功,编译也成功?
      

  2.   

    .dll(source code)
    unit tt;interface
    function ttt():String;export;
    implementation
    function ttt():String;
    var
     s:string;
    begin
     s:='this is a temp';
     Result:=s;
     end;
    end.=============================
    调用
    function ttt():String;far;external 'Project1.dll';

    label1.caption:=ttt();
    ===================
    label1成功显示,但是提示错误(invalide pointer operation)
      

  3.   

    把string改为pchar类型的。unit tt;interface
    function ttt():pchar;export;
    implementation
    function ttt():pchar;
    var
    s:string;
    begin
    s:='this is a temp';
    Result:=pchar(s);
    end;
    end.调用
    function ttt():pchar;far;external 'Project1.dll';

    label1.caption:=string(ttt());
      

  4.   

    要释放掉在dll中动态分配的东西