F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #1 delphi做的DLL如何返回pchar类型的变量 例如: function Ggg(achar):bool; 如何写这个函数,还有怎么调用,谢谢
S sbzldlb Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #2 function Ggg(var achar):bool; 然后把 你想返回的值给 a 在主程序里读去a 就可以了
H huangsm_xiu Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #4 你这个返回布尔型的吧。 1.dll function Gggchar; begin Result:=Pchar('strings'); end; 2。调用 function Gggchar;external'dll' var str:string begin str=strPas(Ggg) end;
你这个返回布尔型的吧。 1.dll function Gggchar; begin Result:=Pchar('strings'); end; 2。调用 function Gggchar;external'dll' var str:string begin str=strPas(Ggg) end;
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #5 sbzldlb, 我也知道你这种办法,主要我做的这个DLL是要使用vc调用的,给的要求是 bool aa(char * x);这样的话对应的delphi应该声明为 function aa(xchar):bool; 还是function aa(var xchar):bool; 呢,谢谢
sbzldlb, 我也知道你这种办法,主要我做的这个DLL是要使用vc调用的,给的要求是 bool aa(char * x);这样的话对应的delphi应该声明为 function aa(xchar):bool; 还是function aa(var xchar):bool; 呢,谢谢
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #7 nicai_wgl,huangsm_xiu,知道吗,谢谢
5 52free Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #8 pchar本身就是一地址指针,是按地址传递的 var xchar 和 x: pchar 没区别 只要在调用之前为x分配空间即可
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #9 52free,我现在用delphi调用这个函数可以返回正确的值,用vc返回的值就不对,郁闷啊,能给举个例子吗
5 52free Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #10 外部调的话 var a: Pchar; begin a := StrAlloc(100); aa(a): ShowMessage(StrPas(a)); end; 在dll内部给x附值 StrPCopy(x, 'YYYY') VC的外部调用查似于StrAlloc的语法
外部调的话 var a: Pchar; begin a := StrAlloc(100); aa(a): ShowMessage(StrPas(a)); end; 在dll内部给x附值 StrPCopy(x, 'YYYY') VC的外部调用查似于StrAlloc的语法
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #11 参数调用顺序对否: 在Delphi写的Dll中的函数后要加上stdcall 再VC中声明这函数前面要加上 __stdcall 因为VC缺省是__cdcel 就是保持调用规范一制!
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #12 52free,非常感谢,我在delphi调用一点问题都没有,可在vc里调用还是返回不正确啊, char x; gg(&x); 还有 char x[100]; gg(x); 这两种方法我都试了,返回都不对啊。还请指教
52free,非常感谢,我在delphi调用一点问题都没有,可在vc里调用还是返回不正确啊, char x; gg(&x); 还有 char x[100]; gg(x); 这两种方法我都试了,返回都不对啊。还请指教
5 52free Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #13 那就是vc调用的写法有问题罗 我以前做医保接口时供his开发商调用业务dll时都是 pchar这种写法 vf, vb, pb 什么开发工具都遇到过调用都没有问题 问题的关键在于在调用函数时要先为x分配空间
那就是vc调用的写法有问题罗 我以前做医保接口时供his开发商调用业务dll时都是 pchar这种写法 vf, vb, pb 什么开发工具都遇到过调用都没有问题 问题的关键在于在调用函数时要先为x分配空间
5 52free Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #14 char *pCh = (char *)malloc(100*sizeof(char)); aa(&pch) C我不熟啊,这样试试可以不
D dey-999 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #15 C语言中的LPTSTR类型对应DELPHI的Pchar类型
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #16 刚才是我弄错了,我刚才用function aa(var xchar):bool;试的传不了 用function aa(xchar):bool;这种方式就可以了,再次感谢!我的qq是2306205
F fox_s Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-15 #17 52free,非常感谢,额外开帖300分酬谢,请进来领分,非常愿意和你交个朋友!