您的位置:首页 > 编程语言 > Delphi

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

2011-10-24 09:15 666 查看
首先我是用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;

这个问题该怎么解决啊?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: