delphi 调用C++dll的问题

asdfasfasfsdfsdfdsf 2015-08-15 10:03:22

下面是读卡器的函数说明和写的调用代码,现在打开端口的函数调用没问题,社保卡开放信息也能调用到,但只能调到卡号和姓名,其他的都没有显示,有哪位大神能帮忙看看是什么原因啊

返回数据结构说明

//社保卡开放信息
typedef struct TPublicInfoTag
{
char cCardNo[9]; /* 卡号*/
char cName[30]; /* 姓名 */
char cSex[1]; /* 性别*/
char cPersonalID[18]; /* 身份证号*/
char cPhone[15]; /* 联系电话 */
char cAddress[80]; /* 通信地址*/
char cPostCode[6]; /* 邮政编码*/
}TPublicInfo;


函数说明
yibao.dll 内函数说明

//打开串口,
如 handle=ICC_Reader_Open(“COM1”);

STDAPI ICC_Reader_Open(BYTE *pCOM);

//关闭串口 yibao.dll
STDAPI ICC_Reader_Close(int ReaderHandle);

iccdll.dll 内函数说明

//读取社保卡开放信息
STDAPI ReadPublicInfo(int ReaderHandle,TPublicInfo *pInfo); // iccdll.dll

以上函数返回为 int 型 大于 0 正确 小于0 错误
------------------------------------------------------------------------------------------------------------------

调用代码


function ICC_Reader_Open(open:LPCSTR):Integer;stdcall;
external 'YiBao.dll';
function ReadPublicInfo(ReaderHandle:Integer;PublicInfo:LPCSTR):Integer;stdcall;
external 'iccdll.dll';

var
r :array [0..159] of char;
begin
ReadPublicInfo(ICC_Reader_Open('COM1'),r);
Edit1.Text:=r;
end;
...全文
122 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr Dang 2015-08-15
  • 打赏
  • 举报
回复
type tpublicinfo=record..…ppublicinfo=^tpublicinfo var mypubicinfo:ppublicinfo ;new(mypublicinfo) ;读接口函数;大概就这样,替换掉你的r定义

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧