明华RF读写器求助!(200分)

  • 主题发起人 主题发起人 duancy
  • 开始时间 开始时间
D

duancy

Unregistered / Unconfirmed
GUEST, unregistred user!
程序提供的delphi调用例子如下<br>函数申明<br> &nbsp;function rf_card(icdev:longint;mode:smallint;snr:pChar):smallint;stdcall;<br> &nbsp;far;external 'mwrf32.dll'name 'rf_card';<br><br>调用例子<br>var<br> &nbsp;icdev,snr : longint;<br>begin<br> &nbsp; &nbsp; st:=rf_card(icdev,1,@snr);<br> &nbsp; &nbsp; if st&lt;&gt;0 then<br> &nbsp; &nbsp; &nbsp; &nbsp;listbox1.items.add('card snr error')<br> &nbsp; &nbsp; else<br> &nbsp; &nbsp; &nbsp; &nbsp;listbox1.items.add('card snr Ok:'+inttostr(snr));<br>end;<br>可以正常编译和运行,但是运行结果snr=1722244116<br>而他自己软件结果是snr=66A75C14<br>请问这两个结果有什么关系?我该怎么处理?
 
66A75C14 is hex number.0x66A75C14 =1722244116.
 
u can use inttohex function.
 
66A75C14是十六进制,1722244116是十进制,两者相等。
 
哦,一定要用inttoHex转换是吧!<br>66A75C14 := inttoHex(1722244116,8)<br>再问,真实的卡号应该是145C7A66,还需要进行怎样的转换?
 
还有我在CSDN收索到类似问题<br>http://community.csdn.net/Expert/TopicView3.asp?id=5018037<br><br>有答案说不用转换,是定义数据类型不对!<br>in C++:<br>int rf_anticoll(int icdev,unsigned char _Bcnt,unsigned long *_Snr);<br><br>in Delphi:<br>function rf_anticoll(icdev:integer;_Bcnt:char;var _Snr:Dword):integer;stdcall;<br>请帮忙,马上就给分了!
 
在线,顶起来!
 
楼主应该仔细看看明华软件带的帮助和函数说明。
 
如果读和写的数据类型是相同的话,那就不用转换了呀.<br>不相同的话当然要转换了.
 
那请问怎样做个函数将<br>667A5C14转换为145CA766!
 
你读的是mifare卡的卡号吧,你把它先变成BYTE类型,再换一下`位置不就行了吗。
 
明华RF读写器的帮助文件里写的很详细,比着写一下就行了
 
忘记结贴了,SORRY!
 
后退
顶部