小弟用的是广东达华的MG-500读卡器,在寻卡时返回值每次不等于0(寻卡失败)。不知道是什么原因,函数的声明与调用贴下:
函数介绍:
__int16 rf_request(int icdev,unsigned char _Mode, unsigned int *TagType);
功 能:寻卡请求
参 数: HANDLE icdev:设备描述符
unsigned char _Mode:寻卡模式,为 0 或 1
Mode=0:IDLE 模式,一次只选一张卡
Mode=1:ALL 模式, 一次可选多张卡
unsigned int *Tagtype:指向返回的卡类型值
返 回:成功则返回 0
例:int st;
st=rf_request(icdev,IDLE,tagtype);
注:对卡操作前先执行寻卡指令函数声明:
function rf_request(icdev:integer;Mode:byte;TagType:PInteger):integer;stdcall;external 'mwrf32.dll';函数调用:
i := rf_request(icdev,0,@cardtype);
if i <> 0 then
begin
showmessage('寻卡失败!');
rf_exit(icdev);//关闭串口
close_port := true;
exit;
end;
//icdev:integer设备标识符,cardtype:Integer,卡类型值
函数介绍:
__int16 rf_request(int icdev,unsigned char _Mode, unsigned int *TagType);
功 能:寻卡请求
参 数: HANDLE icdev:设备描述符
unsigned char _Mode:寻卡模式,为 0 或 1
Mode=0:IDLE 模式,一次只选一张卡
Mode=1:ALL 模式, 一次可选多张卡
unsigned int *Tagtype:指向返回的卡类型值
返 回:成功则返回 0
例:int st;
st=rf_request(icdev,IDLE,tagtype);
注:对卡操作前先执行寻卡指令函数声明:
function rf_request(icdev:integer;Mode:byte;TagType:PInteger):integer;stdcall;external 'mwrf32.dll';函数调用:
i := rf_request(icdev,0,@cardtype);
if i <> 0 then
begin
showmessage('寻卡失败!');
rf_exit(icdev);//关闭串口
close_port := true;
exit;
end;
//icdev:integer设备标识符,cardtype:Integer,卡类型值
Function rf_request( glngICDev : integer; mode : char; var atr_type : integer) : Integer; stdcall; external 'kkk.dll';
Request(DeviceAddr, 0x52, cardtype, snr);