调用dll中的变量转换问题(50分)

  • 主题发起人 主题发起人 午睡
  • 开始时间 开始时间

午睡

Unregistered / Unconfirmed
GUEST, unregistred user!

vc编译的dll文件,具体函数InOut定义如下:
int InOut(int ID ,int *YYYY,int *MM,int *DD,char *Status)
参数 ID 编号
YYYY MM DD (传回变量) 年月日
Status (传回变量) 状态
int* 和 char*对应delphi什么类型?



 
int* -> pinteger
char* -> pchar
 
下面这么写对吗?
var
revalue,ID:integer

YYYY,MM,DD:pinteger;
Status:Pchar;
---------------
ID:=1

revalue:=GetOneInOut(ID,YYYY,MM,DD,Status);

 
那样写需要为指针分配内存,不如这样:
var
revalue,ID:integer

YYYY,MM,DD:integer;
Status:char;
---------------
ID:=1

revalue:=GetOneInOut(ID,@YYYY,@MM,@DD,@Status);

或者可以用var方式传参:
function InOut(ID: integer
var YYYY, MM, DD: integer
var Status: char): integer;
就不用'@'了
 
对,就是这样写的。
int InOut(int ID ,int *YYYY,int *MM,int *DD,char *Status)
function InOut(ID: integer
YYYY: PInteger
MM: PInteger
Status: PChar): Integer;
 
后退
顶部