delphi调用C动态链接库dll(100分)

  • 主题发起人 主题发起人 zylsoft
  • 开始时间 开始时间
Z

zylsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
c中调用代码是:
extern "C" __declspec(dllexport)int __stdcall SmsToText(char* sms,char* csca,int*csca_len,char* ToNum,int* ToNum_len,char* sendtime,int* time_len,char* smsnr);

delphi中我调用:
...
function SmsToText(sms:string;csca:string;csca_len:integer;ToNum:string;
ToNum_len:integer;sendtime:string;time_len:integer;smsnr:string):string;
stdcall; external 'SMSDLL.dll' name 'SmsToText';
.....

procedure TForm1.Button1Click(Sender: TObject);
var sms:string;
csca:string;
csca_len:integer;
ToNum:string;
ToNum_len:integer;
sendtime:string;
time_len:integer;
smsnr:string ;
s:string;
begin
sms:=memo1.Text;
s:=SmsToText(sms,csca,csca_len,ToNum,ToNum_len,sendtime,time_len,smsnr);
end;

为什么编译运行点button报错呀?谁来指点下!!
 
function SmsToText(sms, csca : PChar; var csca_len : Integer; ToNum : PChar; var ToNum_len : Integer; sendtime : PChar; var time_len : Integer; smsnr : PChar) : Integer; StdCall; external 'SMSDLL.dll' ;
 
function SmsToText(sms:string;csca:string;csca_len:integer;ToNum:string;
ToNum_len:integer;sendtime:Pchar;var time_len:integer;smsnr:Pchar):Pchar;
stdcall; external 'SMSDLL.dll' name 'SmsToText';

不对

应该这样:
function SmsToText(sms:Pchar;csca:Pchar;var csca_len:integer;ToNum:Pchar;
var ToNum_len:integer;sendtime:string;time_len:integer;smsnr:string):integer;
stdcall; external 'SMSDLL.dll' name 'SmsToText';
 
上面的都有问题。应该是:
function SmsToText(sms:Pchar;csca:Pchar;csca_len:Pinteger;ToNum:Pchar;
ToNum_len:Pinteger;sendtime:Pchar;time_len:Pinteger;smsnr:PChar):integer;
stdcall; external 'SMSDLL.dll' name 'SmsToText';
 
to xingkong97:
我的有问题么?[:D]
 

Similar threads

后退
顶部