请教各位大侠,这句C语言描述的函数声明如何在DELPHI中定义???
拿到一个接口函数,有这样的说明,intJK_XYReadGuestCard(LPSTRp_csRoomNo,LPSTRp_csStartTime,int&p_nTimeU...
拿到一个接口函数,有这样的说明,
int JK_XYReadGuestCard(LPSTR p_csRoomNo,LPSTR p_csStartTime,int &p_nTimeUnit,int &p_nTimeLength,int &p_nStopFlag,LPSTR p_csCardNo);
功能:读客人卡,此函数只能读客人卡
参数:
p_csRoomNo返回客人卡的门锁编码,此门锁编码独立于接口使用,用户软件不要去管理它;
p_csStartTime 客人卡开门的起始时间,格式为YYMMDDHH,如12112718表示2012年11月27日18时;
p_nTimeUnit 有效开门的时间单位,0-以小时为单位,1-以天为单位,2-以月为单位,3-以年为单位;
p_nTimeLength 开门的有效时间,以小时为单位时此值范围为1-63, 以天为单位时此值范围为1-63, 以月为单位时此值范围为1-15, 以年为单位时此值范围为1-3;
p_nStopFlag 挂失旧的客人卡标志,0-表示不挂失旧客人卡,1-表示能挂失旧的客人卡。
p_csCardNo 此客人卡的卡号,卡号由接口自动生成,卡号值是与起始时间有关系的。
-------------------------------
请问这函数应该在DELPHI中如何定义???? 展开
int JK_XYReadGuestCard(LPSTR p_csRoomNo,LPSTR p_csStartTime,int &p_nTimeUnit,int &p_nTimeLength,int &p_nStopFlag,LPSTR p_csCardNo);
功能:读客人卡,此函数只能读客人卡
参数:
p_csRoomNo返回客人卡的门锁编码,此门锁编码独立于接口使用,用户软件不要去管理它;
p_csStartTime 客人卡开门的起始时间,格式为YYMMDDHH,如12112718表示2012年11月27日18时;
p_nTimeUnit 有效开门的时间单位,0-以小时为单位,1-以天为单位,2-以月为单位,3-以年为单位;
p_nTimeLength 开门的有效时间,以小时为单位时此值范围为1-63, 以天为单位时此值范围为1-63, 以月为单位时此值范围为1-15, 以年为单位时此值范围为1-3;
p_nStopFlag 挂失旧的客人卡标志,0-表示不挂失旧客人卡,1-表示能挂失旧的客人卡。
p_csCardNo 此客人卡的卡号,卡号由接口自动生成,卡号值是与起始时间有关系的。
-------------------------------
请问这函数应该在DELPHI中如何定义???? 展开
展开全部
function JK_XYReadGuestCard(p_csRoomNo: PChar; p_csStartTime: PChar;var p_nTimeUnit: Integer; var p_nTimeLength: Integer; var p_nStopFlag: Integer; p_csCardNo: PChar): Integer;
这里的LPSTR就是相当于字符指针,用delphi的PChar对应,
int &这个数据类型可以由var ***:Integer来对应
没测试过,字符型的如果不行可以用其他数据类型代替。
这里的LPSTR就是相当于字符指针,用delphi的PChar对应,
int &这个数据类型可以由var ***:Integer来对应
没测试过,字符型的如果不行可以用其他数据类型代替。
追问
谢谢帮助,我也是这样定义的,但调用的时候函数返回内存错误,可否简单给一个调用的示例程序??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function JK_XYReadGuestCard(p_csRoomNo:PChar; p_csStartTime:PChar; var p_nTimeUnit:integer; var p_nTimeLength: integer; p_nStopFlag: integer; p_csCardNo:PChar): Integer;stdcall;external '你的dll名称.dll' name 'JK_XYReadGuestCard';
cdecl 还是 stdcall 要看你c中是如何定义的
追问
谢谢帮助,我也是这样定义的,但调用的时候函数返回内存错误,可否简单给一个调用的示例程序??
追答
p_csCardNo参数是不是 把此客人卡的卡号 传出来用的?
如果是的话,首选要用getmem给p_csCardNo分配“足够”空间;
然后调用函数,
在调用后使用完成后,要用freemem释放空间
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询