删除一张卡
DeleteOneCard(DeviceID,DeviceType,CardID1,CardID2,CardID3,CardID4, CardType)               
执行成功返回True,执行失败返回 False
参数名称 参数类型 数据类型 参数说明
DeviceID 设定值 整数 考勤机的ID号:(设定值)
DeviceType 设定值 整数 考勤机类型(考勤机:DeviceType=1)
CardID1 设定值 整数 卡号高位1(0-255)
CardID2 设定值 整数 卡号高位2(0-255)
CardID3 设定值 整数 卡号低位1(0-255)
CardID4 设定值 整数 卡号低位2(0-255)
CardType 设定值 整数 卡片类型(等于0即可)
例如:删除考勤机ID为2,卡号是18015789,
 DeleteOneCard (2,1,01,18,230,45,0)
备注:卡号必须转换为4个整数(不足4个整数前面补0),按照高位在前,低位在后

解决方案 »

  1.   

    int id = 18015789;
    byte[] bytes = BitConverter.GetBytes(id);
    for (int i = 0; i < bytes.Length; i++)
    {
        Console.WriteLine("{0} {1:x2} {1:d}", i, bytes[i]);
    }
      

  2.   

    一个整数=四个字节,写个方法自己转字节数组更能明白其中道理:class Program
        {
            static unsafe void get(ref byte[] buff, int x)
            {
                int* p = &x;
                byte* b = (byte*)p;            if (buff.Length != 4)
                    throw new Exception("buff's length error!");            for (int i = 0; i < buff.Length; i++,b++)
                {
                    buff[i] = *b;
                }
                
            }
            static void Main(string[] args)
            {
                int id = 18015789;
                
                byte[] buff = new byte[4];
                get(ref buff, id);
                for (int i = 0; i < buff.Length; i++)
                    Console.WriteLine(buff[i]);//输出45,230,18,1
                
            }
        }将整数18015789转换为字节后,各字节对应的数值如下:
    buff[0]=45,buff[1]=230,buff[2]=18,buff[3]=1整数18015789的最高字节的值为1,次高字节的值为18,次低字节的值为230,最低字节的值为45
    由此固定下四个参数与转换后的字节数组的对应规则:
    CardID1 设定值 整数 卡号高位1(0-255):最高字节
    CardID2 设定值 整数 卡号高位2(0-255):次高字节
    CardID3 设定值 整数 卡号低位1(0-255):次低字节
    CardID4 设定值 整数 卡号低位2(0-255):最低字节
      

  3.   


    谢谢! 在VS2008中有这个问题要怎么解决:错误 1 不安全代码只会在使用 /unsafe 编译的情况下出现 C:\Users\M\Desktop\ClassLibrary1\ClassLibrary1\Class1.cs 11 32 ClassLibrary1
      

  4.   

    项目菜单->最下面的点属性->在弹出的对话框中点左边的生成->钩选右边"允许不安全代码",就可以编译了