请教高手关于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;
这个问题该怎么解决啊?
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中编译时对输出文件分类的问题?
- 请教高手一个关于msdn的问题
- 请教一个问题:关于 webrtc 通信的问题
- 请教各位高手一个问题?
- 对不起,各位哥哥,我有一个问题向你们请教,请多多指教关于C#DataGrid的问题,特急!!!
- 请教高手一个问题,数据库方面的,O(∩_∩)O哈哈~
- 请教一个问题!!Delphi高手们请帮忙!!
- 关于Delphi 7 汉化问题请教
- 请教高手一个可以登陆网络但不能登陆msn的问题
- 一个关于C#的问题 请高手指点
- 对不起,各位哥哥,我有一个问题向你们请教,请多多指教关于C#DataGrid的问题,特急!!!
- 关于用sufer做影像图的问题,是一个色彩矩阵,请懂的高手帮忙看一下。
- 请教高手一个问题,o(∩_∩)o...哈哈
- 向大家请教一个关于sharepoint2003的问题,如何使一个Custom List in Datasheet View中某个field从其他list抽取数据当显示时?
- 关于我的一个exe文件打不开的问题,求高手帮忙
- 请教一个关于弹出对话框的问题.
- 请教一个关于WEBFORM 调用外部EXE程序的问题
- 请各位高手看一下.这是一个关于定义冲突的问题.我应该怎么解决.急,忘各位高手指点!
- Delphi - 盒子上面看见的一个问题:关于类型转换Type Cast
- 请教各位大神一个关于安卓开发里面的web服务器的问题 急~~~