关于PB调用delphi的DLL的问题 (50分)

  • 主题发起人 itdelphi
  • 开始时间
I

itdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi写了一个DLL,用一个函数的参数动态返回字符串,但总是返回几个乱码字符(最多3个),
我只记得在输出时要加一个长度,但不知道该如何加(要求只用参数返回),源代码如下:
library getdblink;
uses
QDialogs,SysUtils,Classes;
function dir(var linkDir:pchar):boolean;stdcall;
var str:string ;
var boo:boolean;
begin
boo :=SelectDirectory('选择路径', '',str);
linkdir:=Pchar(str);
result:=boo;
end;

exports
dir;
end.
 
试试
function dir(linkDir:pchar):boolean;stdcall;
var str:string ;
var boo:boolean;
begin
boo :=SelectDirectory('选择路径', '',str);
StrPCopy(linkdir, str);
result:=boo;
end;

调用时必须传pb里面一个的一个 string[0..MAX_PATH] 之类的东西
 
to qdyoung:
去掉 var 怎么通过参数往回传值,还有,PB里不可能再用那样的方式接受数据,只能是一个
ref string 的字符串
 
pchar就是一个指针,你把指向pb一个字符串的指针传过去就可以了
 
to qdyoung:
StrPCopy(linkdir, str);
这个用法的结果是非法操作。
 
接受答案了.
 
请问ITDELPHI,您最后是如何解决的?我现在也是这个问题,不知道如何办了。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1179483
关于PB调用delphi的DLL的问题
我遇到的现象和你一模一样,请问您是如何解决的?
 
顶部