delphi 调用C++dll的问题
下面是读卡器的函数说明和写的调用代码,现在打开端口的函数调用没问题,社保卡开放信息也能调用到,但只能调到卡号和姓名,其他的都没有显示,有哪位大神能帮忙看看是什么原因啊
返回数据结构说明
//社保卡开放信息
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;