[问题点数:100分,结帖人liaolwj]
等级
本版专家分:3559
结帖率 100%
调用卡的DLL中有一段定义是:
/*Define the Type of Card*/
#define ICC_2KP 0x01
#define ICC_2KSP 0x11	//4442
#define ICC_8KP 0x02
#define ICC_8KSP 0x12	//4428
#define ICC_416 0x03
#define ICC_101 0x13
#define ICC_102 0x23
#define ICC_104 0x04
#define ICC_104P 0x14
#define ICC_T0 0x05	//符合ISO7816-3中所规定的T=0的协议的卡
#define ICC_T1 0x06	//符合ISO7816-3中所规定的T=1的协议的卡
#define ICC_TX 0x07
#define ICC_1K 0x08
#define ICC_2K 0x09
#define ICC_4K 0x0a
#define ICC_8K 0x0b
#define ICC_16K 0x0c
#define ICC_16KS9222 0x1c
#define ICC_16KS4444 0x2c
#define	CARD0	0x00	//主读卡头 Main Card Head
DLLEXPORT int WINAPI IFD_ICC_Insert(
UINT IFD_Handle,	//读卡机句柄
USHORT ICC_Type,	//Type of Card 卡类型,见声明
char NodeAddress,	//NodeAddress 读卡头,见声明
USHORT Wait_Time,	//系统等待参数,一般为RECEIVE_TIME即可
LPSTR ATR_Data,	//返回字符串指针
LPSTR Display_Text);	//保留,为外置读卡机的液晶显示内容
/*调用方法(Call processes):
定义 字符串数组 char readbuff[100];
IFD_ICC_Insert
(IFD_Handle,
ICC_T0,
CARD0,
RECEIVE_TIME,
(char *)readbuff,
"");
return Return Code
返回 见返回值声明 >=0为成功(if return>=0 is sucessful)
此例为在主读卡头,插入符合ISO7816-3中所规定的T=0的协议的卡
应用时应根据实际情况替换ICC_Type,NodeAddress二参数
调用条件:IFD_Open*/
在PB中处理如下:
Function Integer IFD_ICC_Insert(UINT IFD_Handle,UINT ICC_Type,char NodeAddress,long Wait_Time,char ATR_Data,char Display_Text) Library "picdll.dll"
char readbuff[100]
return IFD_ICC_Insert(IFD_Handle,ICC_Type,NodeAddress,Wait_Time,readbuff[100],'')
为什么我上电老是错误,卡的OPEN()处理是成功的,多谢各位帮忙!
展开阅读全文
等级
本版专家分:3559
在窗口中处理如下:
integer i
if ll_handle > 0 then
i = uf_test.uf_icc_insert(ll_handle,5,'0',200)
messagebox('1',string(i))
end if
但i小于0,说明是失败的。
等级
本版专家分:15346
勋章
红花2003年5月PowerBuilder大版内专家分月排行榜第一
2003年4月PowerBuilder大版内专家分月排行榜第一