神
神经蛋白质
Unregistered / Unconfirmed
GUEST, unregistred user!
今天拿到一个卡机的接口api. 本身的demo程序是VC. 我利用他的接口API调用他的DLL.把程序改为delphi.可老报错kernel32.dll. 请大虾门看.应该怎样改.下面是VC的代码:
这个是 CardData.h
#ifdef _WIN32
#define STDCALL __stdcall
#else
#define STDCALL
#endif
#ifndef SDTAPI_
#define SDTAPI_
#ifdef __cplusplus
extern "C"{
#endif
#pragma pack(1)
typedef struct tagIDCardData{
char Name[32];
char Sex[4];
char Nation[6];
char Born[18];
char Address[72];
char IDCardNo[38];
char GrantDept[32];
char UserLifeBegin[18];
char UserLifeEnd[18];
char reserved[38];
}IDCardData;
#pragma pack()
// 这里是接口API函数.CardData.dll的
int STDCALL Syn_ReadMsg(int iPortID,int iIfOpen,IDCardData *pIDCardData);
#ifdef __cplusplus
}
#endif
#endif
主要是应该把这个头文件改为delphi结构的.如何改才对!
void CSample::OnButton1()
{
int iRet;
IDCardData CardMsg;
iRet:=Syn_ReadMsg(1,0,Cardmsg);
if (iRet == 0)
{
m_name=Cardmsg.name;
}
}
这个是 CardData.h
#ifdef _WIN32
#define STDCALL __stdcall
#else
#define STDCALL
#endif
#ifndef SDTAPI_
#define SDTAPI_
#ifdef __cplusplus
extern "C"{
#endif
#pragma pack(1)
typedef struct tagIDCardData{
char Name[32];
char Sex[4];
char Nation[6];
char Born[18];
char Address[72];
char IDCardNo[38];
char GrantDept[32];
char UserLifeBegin[18];
char UserLifeEnd[18];
char reserved[38];
}IDCardData;
#pragma pack()
// 这里是接口API函数.CardData.dll的
int STDCALL Syn_ReadMsg(int iPortID,int iIfOpen,IDCardData *pIDCardData);
#ifdef __cplusplus
}
#endif
#endif
主要是应该把这个头文件改为delphi结构的.如何改才对!
void CSample::OnButton1()
{
int iRet;
IDCardData CardMsg;
iRet:=Syn_ReadMsg(1,0,Cardmsg);
if (iRet == 0)
{
m_name=Cardmsg.name;
}
}