Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 3595|回复: 7

lazarus调用c++DLL中这类类型该如何声明?

[复制链接]

该用户从未签到

发表于 2014-6-21 22:39:23 | 显示全部楼层 |阅读模式
获取标签数据
BOOL RfidReadTagData(const PBYTE pEpc, const PBYTE pAccessPassword,
DWORD dwBank, DWORD dwOffset, DWORD dwLen, PBYTE pDataBuffer);
参数 pEpc:标签 ID
参数 pAccessPassword:访问密码,长度 4 个字节,格式为压缩 BCD 码。
参数 dwBank:内存区选择,取值为 0-3,0 为 RFU 区,1 为 EPC 区,2 为 TID
区,3 为用户区。
参数 dwOffset:起始地址,单位为字节。
参数 dwLen:要读取的数据长度,单位为字节。
参数 pDataBuffer:存放读到的数据。
返回值:非零表示成功,0 表示失败。

这个是C++调用说明,象这个参数const PBYTE pEpc该如何在lazarus中声明,动态链接库带.h和.lib文件的,在lazarus中调用需要注意哪些问题?

回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-6-21 23:03:41 | 显示全部楼层
还有这个函数

单次寻卡
BOOL RfidInventoryOnce(PEPC pEpc, DWORD dwTimeout);
参数:pEpc 返回的标签信息
参数:dwTimeout 指定本次寻卡的时间,单位为 ms。
返回值:非零表示成功,0 表示失败。
说明:单次寻卡,成功就返回得到的值。

PEPC类型在lazarus中该如何申明它?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2014-6-21 23:28:04 | 显示全部楼层
RfidReadTagData寫的pEpc的類型是pBYTE,感覺上像是指針類型?(Epc是Byte,pEpc是指向它的指針)

不保證對,不過有興趣就試試看吧~
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-6-21 23:32:39 | 显示全部楼层
谢谢!先上机试试。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-7-1 19:48:07 | 显示全部楼层
单次寻卡
BOOL RfidInventoryOnce(PEPC pEpc, DWORD dwTimeout);
这样声明通过
function RfidInventoryOnce(var pEpc: EPC;
                              dwTimeout: LongInt):integer;cdecl;external 'RfidApi.dll';
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2014-7-1 22:16:00 | 显示全部楼层
不好意思,不專業(小弟非編程相關科系畢業的)指正一下:

C++的DWORD對應到Pascal應該是DWORD或是LongWord,屬於不帶正負號的整數類型,而LongInt是有號數噢~(只是大小剛好都是32 bit所以能用)

另外關於回傳值,C++的BOOL與Pascal的Integer可以通嗎?(我記得bit數不同?)

有沒有哪位大大願意出來解惑一下的?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-7-2 07:56:01 | 显示全部楼层
呵呵,我也就是个门外汉。我当初在bool这个类型上确实也郁闷了很久,但设置为integer编译能通过,在真机上测试也是通过。你说的LongInt这个问题的确是不够细心没注意,谢谢指正。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2014-7-6 23:17:09 | 显示全部楼层
C++的 bool 对应 pascal 的 boolean
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 10:12 , Processed in 0.029256 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表