在DLL中函数返回值不要用strings,最好使用PChar。

解决方案 »

  1.   

    对的,String 不行,不过shortstring好像可以.
      

  2.   

    delphi例子dll的开头就有提示,要么用shortstring或pchar
    要么就加单元sharemem
      

  3.   

    //说明调用类型
    library  test;//test.dll
      
      uses
          SysUtils,
          Classes;
      {$R  *.RES}
      function  returnresult(value:integer):string;stdcall;
      begin
        case  value  of
            1:result:='優秀';
            2:result:='優良';
            3:result:='良好';
            4:result:='及格';
            5:result:='不及格';
        else
            result:='錯誤!';
        end;
        end;
      exports
      returnresult  index  1;
      
      begin
      end.
      -----------------------------
      
      
      我按下button1就出现'Invalid  pointer  operation'错误.代码如下:
      -----------------------------
      implementation
      function  returnresult(value:integer):string;stdcall external  'test.dll';
      {$R  *.DFM}
      
      procedure  TForm1.Button1Click(Sender:  TObject);
      begin
      memo1.Lines.Add('你的成績:'+returnresult(3));
      end;
      
      end.
      ----------------------
      

  4.   

    你必须把SHAREMEM这个unit放在你的uses里的第一项!!!