dll创建窗体过后就乱码
问题:在dll中有个创建窗体(dll项目里的)的接口;调用这个接口过后,在调用别的读数据接口就会出现乱码了,why?
高手们,帮帮忙...

解决方案 »

  1.   

    在内部函数见调用时使用string,在返回给外面用Pchar转换。
    例如:
    function strtopchar(str:string):pchar;
    var
    arrchar:array[0..102400]  of char;
    begin
    fillchar(arrchar,102400,#0);
    StrCopy(@arrchar[0],pansichar(str));
    Result:=@arrchar[0];
    end;
      

  2.   

    To:guanking
    不太清楚我的问题,或许是我写得不清楚?
    我是这样:由参数来取得dll里的数据;
    function strtopchar(var str:pchar):boolean;
    begin
      ...
      str:=?
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
          var
          vBuffer: PChar;
          begin
          GetMem(vBuffer, Length(Edit1.Text) + 1);
          StrCopy(vBuffer, PChar(Edit1.Text));
          Edit2.Text := vBuffer;
          FreeMem(vBuffer);
          ......这是我刚到网上找到的提示源码;