API is written in C++typedef unsigned short MFSTATUS; // known as a WORD - 16 bits for sureMIFAREAPI_API MFSTATUS MIFAREAPICC MF_ReadCardBlock( DWORD dwBlkAdr, DWORD dwRdrKey, DWORD dwKeyAB, DWORD dwRspBufSz, BYTE *pRspBuf );
这样对吗?
Declare Function MF_ReadCard Lib "MifareAPI.dll" Alias "MF_ReadCardBlock" (ByVal BlkAdr As Long, ByVal RdrKey As Long, ByVal KeyAB As Long, ByVal BuffSize As Long, ByRef buffer As Byte()) As Short
谢谢
这样对吗?
Declare Function MF_ReadCard Lib "MifareAPI.dll" Alias "MF_ReadCardBlock" (ByVal BlkAdr As Long, ByVal RdrKey As Long, ByVal KeyAB As Long, ByVal BuffSize As Long, ByRef buffer As Byte()) As Short
谢谢
解决方案 »
- vb 波特率设置
- access的vba怎么做到把表里的数据下载到Excel时,弹出windows的路径保存对话框。
- 求一简单的使用子类使两个程序间互相使用消息通讯的例子!要完整代码!
- 一个很简单的问题
- 急等大虾到来!!!!!!!!!!如何用vb来检测数据库中是否有我所想要的数据
- 如何实现在treeview控件中模糊查找某个节点?
- 如何通过TableDef修改表的属性
- 如果我不知道某DLL的函数原型,但知道类名和函数名,可以在VB使用该DLL吗?怎么用?
- 如何使richtextbox大小自动随窗体改变
- 假如我只用到了vb缺省的那几个控件,那我是否就可以只把已编好的程序文件(.exe),考到另一台机器就可以运行了?
- 关于连接FTP服务器后创建文件夹和上传文件的问题。
- 怎么把vb画面上的字体变颜色
Declare Function MF_ReadCard Lib "MifareAPI.dll" Alias "MF_ReadCardBlock" (ByVal BlkAdr As Long, ByVal RdrKey As Long, ByVal KeyAB As Long, ByVal BuffSize As Long, ByVal lpBuffer As Long) As Short
调用时lpBuffer参数为varptr(bytArray(0))
定义 Dim bufferSize as long = 64
然后 DIM buffer(64) AS BYTE
DIM retVal as ShortretVal = MF_ReadCard(0,0,0,64,varptr(bytArray(0)) 对吗?
Public Function VarPtr(ByVal e As Object) As Integer
Dim GC As GCHandle = GCHandle.Alloc(e, GCHandleType.Pinned)
Dim GC2 As Integer = GC.AddrOfPinnedObject.ToInt32
GC.Free()
Return GC2
End Function
Private Declare Function VarPtr Lib "msvbvm60.dll" Alias "VarPtr" (ByVal lpObject As Object) As Long
这个API无须声明,直接使用。