请教各位大侠,这句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中如何定义????
展开
 我来答
xindeluoye
2014-05-23 · 超过29用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:46.5万
展开全部
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来对应
没测试过,字符型的如果不行可以用其他数据类型代替。
追问
谢谢帮助,我也是这样定义的,但调用的时候函数返回内存错误,可否简单给一个调用的示例程序??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2014-05-23 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:611万
展开全部
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释放空间
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式