请教高手关于delphi中的一个问题

    首先我是用delphi写了一个dll ,导出一个函数,然后delphi写的程序中调用这个导出的函数,通过pchar类型,通过函数传参数得到返回值。但是传出来的总是乱码?

  dll中函数是这样写的:

声明:

function checkdll(temp1 : string; temp2:pchar  ):Integer  ;

实现

function checkdll;
const title = 'dfdf' ;
var
HsEdit1: THsEdit;
  aa : Integer ;
  str : string ;
  bb :pchar ;
begin
  Edit1 := TEdit.Create(nil);
  Edit1.Text := temp1;
  str := Edit1.Text ;
  temp2 := pchar(str) ;
  Edit1.Free ;
  Result := 15 ;
end;

导出函数

uses
  SysUtils,
  Classes,
  Testfunction in 'Testfunction.pas' {Form1},
  dllunit in 'dllunit.pas';

{$R *.res}
exports
    checkdll ;

 

调用

type
  Tcheck = Function(str : string ; str2 : pchar ): Integer  ; stdcall ;

procedure TForm2.btn1Click(Sender: TObject);
var
  dll :THandle ;
  p : Tcheck ;
  cc : pchar ;
  bb : Integer;
begin
     dll := LoadLibrary(pchar('TestDll.dll'))  ;
     if dll <> 0 then
     begin
       @p := GetProcAddress(dll ,'checkdll') ;
       if (@p <> nil) then
       begin
         GetMem(cc , 256) ;
         bb := p(edt1.Text , cc) ;
         edt2.Text := cc ;
       end  ;
     end;
     FreeMem(cc);
     FreeLibrary(dll);
end;

 

这个问题该怎么解决啊?

你可能感兴趣的:(请教高手关于delphi中的一个问题)