我用的这个第三方设备需要初始化、蜂鸣、核对密码等!以下是C#的代码: using System; /// <summary> } #region 对USB接口的使用(PHILIPH卡) [DllImport("dcrf32.dll")] [DllImport("dcrf32.dll")] [DllImport("dcrf32.dll")] [DllImport("dcrf32.dll")] #endregion public static bool WriteIn(string str) try ulong icCardNo = 0; byte[] hexkey = new byte[6] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; //核对密码 int address = 1; data32_hex = str; public static bool ReadCard(string str, out string CardNo) ulong icCardNo = 0; byte[] hexkey = new byte[6] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; st = dc_load_key(_icdev, 0, 1, hexkey); //核对密码 |
查看函数调用时的函数的作用:
[DllImport("dcrf32.dll", EntryPoint = "dc_init")]
//说明:初始化public static extern int dc_init(Int16 port, long baud); //初试化
[DllImport("dcrf32.dll", EntryPoint = "dc_exit")]
//说明:关闭读写模块
public static extern short dc_exit(int icdev);
[DllImport("dcrf32.dll", EntryPoint = "dc_reset")]
//说明:重置读写模块一段时间
public static extern short dc_reset(int icdev, uint sec);
[DllImport("dcrf32.dll", EntryPoint = "dc_request")]
//说明:寻卡
public static extern short dc_request(int icdev, char _Mode, ref uint TagType);
[DllImport("dcrf32.dll", EntryPoint = "dc_card")]
//说明:获得卡芯片号
public static extern short dc_card(int icdev, char _Mode, ref ulong Snr);
[DllImport("dcrf32.dll", EntryPoint = "dc_halt")]
//说明:关闭与当前卡的通讯
public static extern int dc_halt(int icdev);
[DllImport("dcrf32.dll", EntryPoint = "dc_anticoll")]
//说明:锁定卡,返回芯片号
public static extern short dc_anticoll(int icdev, char _Bcnt, ref int IcCardNo);
[DllImport("dcrf32.dll", EntryPoint = "dc_beep")]
//说明:蜂鸣
public static extern short dc_beep(int icdev, uint _Msec);
[DllImport("dcrf32.dll")]
//说明:验证密钥
public static extern short dc_authentication(int icdev, Int16 _Mode, Int16 _SecNr);
[DllImport("dcrf32.dll", EntryPoint = "dc_load_key")]
public static extern short dc_load_key(int icdev, int mode, int secnr, [In] byte[] nkey); //密码装载到读写模块中
[DllImport("dcrf32.dll", EntryPoint = "dc_load_key_hex")]
public static extern short dc_load_key_hex(int icdev, int mode, int secnr, string nkey); //密码装载到读写模块中
[DllImport("dcrf32.dll", EntryPoint = "dc_write")]
public static extern short dc_write(int icdev, int adr, [In] byte[] sdata); //向卡中写入数据
[DllImport("dcrf32.dll", EntryPoint = "dc_write")]
public static extern short dc_write(int icdev, int adr, [In] string sdata); //向卡中写入数据
[DllImport("dcrf32.dll", EntryPoint = "dc_write_hex")]
public static extern short dc_write_hex(int icdev, int adr, [In] string sdata); //向卡中写入数据(转换为16进制)
[DllImport("dcrf32.dll", EntryPoint = "dc_read")]
public static extern short dc_read(int icdev, int adr, [Out] byte[] sdata);
[DllImport("dcrf32.dll", EntryPoint = "dc_read")]
public static extern short dc_read(int icdev, int adr, [MarshalAs(UnmanagedType.LPStr)] StringBuilder sdata); //从卡中读数据
[DllImport("dcrf32.dll", EntryPoint = "dc_read_hex")]
public static extern short dc_read_hex(int icdev, int adr, [MarshalAs(UnmanagedType.LPStr)] StringBuilder sdata); //从卡中读数据(转换为16进制)
[DllImport("dcrf32.dll", EntryPoint = "a_hex")]
public static extern int a_hex(string oldValue, ref string newValue, Int16 len); //普通字符转换成十六进制字符
[DllImport("dcrf32.dll", EntryPoint = "hex_a")]
public static extern void hex_a(ref string oldValue, ref string newValue, int len); //十六进制字符转换成普通字符
[DllImport("dcrf32.dll", EntryPoint = "dc_changeb3")]
public static extern short dc_changeb3(int icdev, int _SecNr, byte[] _KeyA, int _B0, int _B1, int _B2, int _B3, int _Bk, byte[] _KeyB); //十六进制字符转换成普通字符
[DllImport("dcrf32.dll", EntryPoint = "dc_select")]
public static extern short dc_select(int icdev, int _Snr, ref uint _Size); //十六进制字符转换成普通字符