200分问 C#调用读卡器
Function Integer DC_Mif_Read(Integer bAddr ,Ref String bData ) Library "Fox_DC.dll"
Function Integer DC_Mif_Write(Integer bAddr , Ref String bData ) Library "Fox_DC.dll"
这两个函数是PB中的声明
说明如下:
DC_Mif_Write
DC_Mif_Write 函数向卡片内的指定块地址写入一字符串。
WORD DC_Mif_Write
(
BYTE _bAdr,
BYTE *_bData
);
参数
_bAdr
要写入的块地址。对于Mifare S50卡,其范围为(1 - 63),对于Mifare L10卡,其范围为(2 - 11), Mifare 1102 其范围是(2 – 15);Token其范围是(2 – 15)。
_bData
无符号字符型指针,其内容为要写入到卡片内的ASC码形式的字符串。Mifare S50应确保已分配给_bData指针至少32个字节的空间,其余8字节就好。
返回值
如果函数调用成功,返回值为0。
如果函数调用失败,返回值不为0。如需得到错误描述,请调用DC_GetLastError。
DC_Mif_Read
DC_Mif_Read 函数从卡片内的指定块地址读取一字符串。
WORD DC_Mif_Read
(
BYTE _bAdr,
BYTE *_bData
)
参数
_bAdr
要读取的块地址。对于Mifare S50卡,其范围为(0 - 63);对于Mifare L10卡,其范围为(0 - 11),其中有连续两个块读的内容是一样的;Mifare 1102 其范围是(0 – 15);Token其范围是(0 – 15)。
_bData
无符号字符型指针,指向从卡片存储区内读到的字符串的ASC码并返回给应用程序。读Mifare S50的卡应确保已分配给_bData指针至少32个字节的空间,Mifare L10 至少16字节空间,其余8字节就可。
返回值
如果函数调用成功,返回值为0。
如果函数调用失败,返回值不为0。如需得到错误描述,请调用DC_GetLastError。
请问在C#中如何调用?????
[解决办法]
不懂
帮顶!
[解决办法]
高深,顶贴
[解决办法]
关注.
[解决办法]
[DllImport("FOX_DC.dll", EntryPoint = "DC_Mif_Read", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern int DC_Mif_Read(int bAddr,string bData); [DllImport("FOX_DC.dll", EntryPoint = "DC_Mif_Write", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern int DC_Mif_Write(int bAddr,string bData);
[解决办法]
没用过,帮顶
[解决办法]
期待高手出现,帮顶
[解决办法]
[DllImport("FOX_DC.dll", EntryPoint = "DC_Mif_Read", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern int DC_Mif_Read(int bAddr,ref string bData);
[解决办法]
学习中,免得沉下去,顶起来
[解决办法]
以前做M1读卡的时候主要取决然于DLL文件,,如果说DLL中的此方法的话会好一些,具体要看DLL文件中的了,因为毕竟你是通过调用DLL文件中的方法去启动卡的
[解决办法]
是通过DLL文件去启动读卡器的
[解决办法]
绑定 我过段时间也会用到这玩意 期待高手
[解决办法]
郁闷 哪个图不能贴,申请了好久了 郁闷,管理员在干什么。火大的很
[DllImport("FOX_DC.dll", EntryPoint = "DC_Mif_Read", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern int DC_Mif_Read(int bAddr,ref string bData);
[解决办法]
楼主,我不知道你这读卡器是读数的,我只说一下以前我的读卡方式,是通过事件来返回的,即发送个命令如果命令正确会触发事件,然后通过事件来得到返回值的,具体要看你的DLL以及卡的方式,你老是纠缠在DLL方法上,我认为不可取,
[解决办法]
public static extern int DC_Mif_Write(UInt16 bAddr,ref StringBuilder bData);
[解决办法]
第二个参数用byte[]试试。
[解决办法]
学习中
[解决办法]
发一个参数对照表。。
HANDLE void* System.IntPtr
BYTE unsigned char System.Byte
SHORT short System.Int16
WORD unsigned short System.UInt16
INT int System.Int32
UINT unsigned int System.UInt32
LONG long System.Int32
BOOL long System.Int32
DWORD unsigned long System.UInt32
ULONG unsigned long System.UInt32
CHAR char System.Char
LPSTR char* System.String 或 System.Text.StringBuilder
LPCSTR Const char* System.String 或 System.Text.StringBuilder
LPWSTR wchar_t* System.String 或 System.Text.StringBuilder
LPCWSTR Const wchar_t* System.String 或 System.Text.StringBuilder
FLOAT Float System.Single
DOUBLE Double System.Double
[解决办法]
所以你
public static extern int DC_Mif_Write(UInt16 bAddr,ref byte[] bData);
[解决办法]
~这问题很难么~
[解决办法]
高深的问题
[解决办法]
把试出的答案贴出来
[解决办法]
不懂
帮顶!
[解决办法]