1.动态连接库的函数声明作了如下改动:
添加了条件编译指令:
#ifdef __cplusplus
extern "C"
{
#endif
声明函数的类型为__stdcall,并添加__declspec(dllexport)修饰符,主要是便于其他的如Delphi,VB等调用:
int __declspec (dllexport) __stdcall readcard(int comport,int track,char *data1,char *data2,int model,long cmto);
int __declspec (dllexport) __stdcall writecard(int comport,int track,char *data1,char *data2,int model,long cmto);
int __declspec (dllexport) __stdcall endcard(int model);
int __declspec (dllexport) __stdcall reset(int comport,int model);
最后添加的是:
#ifdef __cplusplus
}
#endif
调用时,声明函数:
HINSTANCE gLibMyDLL = NULL;
// declar
//定义指向DLL库中readcard指针
typedef int (__stdcall *MYFUN1)(int comport,int track,char data1[37],char data2[104],int model,long cmto);
MYFUN1 readcard;
//declare
//定义指向DLL库中writecard指针
typedef int (__stdcall *MYFUN2)(int comport,int track,char data1[37],char data2[104],int model,long cmto);
MYFUN2 writecard;
//定义指向DLL库中reset指针
typedef int (__stdcall *MYFUN3)(int comport, int model);
MYFUN3 reset;
//定义指向DLL库中endcard指针
typedef int (__stdcall *MYFUN4)( int model);
MYFUN4 endcard;
3.动态库中函数返回码含义如下:
3.1 readchar的返回码
0: 正常返回
- 1: 创建串口句柄错误:CreateFile Failed!
- 2: 建立串口句柄通信错误:SetupComm Failed!
- 3: 获取串口状态错误:GetCommState Failed!
- 4: 参数错误:model不等于1和2!
- 5: 设置串口参数错误:SetCommState Failed!
- 6: model=2,发送命令码,但接受到的并非合法的数据序列:First character is not ESC!(超时)
- 7: model=2,发现异常退出字符:Get 0x7F !
- 8: model=1,发送错误:WriteFile Failed!
- 9: model=1,接收错误:ReadFile Failed!
-10: model=1,发送错误:WriteFile Failed!
-11: model=1,发送错误:WriteFile Failed!
-12: model=1,数据缓冲区中接受到*字符!
-13: 超时时间小于等于0
-100 : 串口句柄无效
3.2 writechar 的返回码
0: 正常返回
- 1: 创建串口句柄错误:CreateFile Failed!
- 2: 建立串口句柄通信错误:SetupComm Failed!
- 3: 获取串口状态错误:GetCommState Failed!
- 4: 参数错误:model不等于1和2!
- 5: 设置串口参数错误:SetCommState Failed!
- 6: model=2,写卡错误!
- 7: model=1,发送错误:WriteFile Failed!
- 8: model=1,接收错误:ReadFile Failed!
- 9: model=1,发送错误:WriteFile Failed!
-10: model=1,接收错误:ReadFile Failed!
-11: model=1,数据缓冲区中接受到*字符!
-13:超时时间小于等于0
-14:写卡失败(写卡数据长度超限or非法字符or刷卡方式错误)
-100:串口句柄无效
3.3 endcard 的返回码
0: 正常返回
- 4: 参数错误:model不等于1和2!
3.4 reset的返回码
0: 正常返回
- 1: 创建串口句柄错误:CreateFile Failed!
- 2: 建立串口句柄通信错误:SetupComm Failed!
- 3: 获取串口状态错误:GetCommState Failed!
- 4: 参数错误:model不等于1和2!
- 5: 设置串口参数错误:SetCommState Failed!
以上为北京金诚信磁条卡读写器的程序使用说明,如果您还有什么疑问请给我们致电或者给我们留言,我们将为您提供周到的服务。