写成非托管dll,c#中用importDll引入
解决方案 »
- 函数指针的内存实现方法
- winform的文本框只能输入数字、使用删除键、回车键跟快捷键的复制粘帖
- Windows Media Player播放流媒体如何进行下载?
- 无聊中...上午用C#改进写了一个类似QQ的截屏功能的小程序,现共享给大家(有源码),希望对大家有用!~~顶的进~
- 一个控制多行TEXTBOX文本颜色的问题!!!!懂的进来解决下!!!先谢了!!!
- 跪求并口转I2C的c#代码!
- 请问怎么给DataList中的CheckBox加上CheckedChanged事件
- C#中怎么调用vc++的东西额
- 怎么得到具体属性的summary中的内容?
- 在这板块,终于升到了4角,送粪
- 断开式数据访问,总是出现“未将对象引用到对象的实例”
- 求教C# PPPOE拨号问题
这个里面有C#的CRC校验代码,可以看看
/// <summary>
///CRC16校验算法,(低字节在前,高字节在后)
/// </summary>
/// <param name="data">要校验的数组</param>
/// <returns>返回校验结果,低字节在前,高字节在后</returns>
public static byte[] crc16(byte[] data)
{
if (data.Length == 0)
throw new Exception("调用CRC16校验算法,(低字节在前,高字节在后)时发生异常,异常信息:被校验的数组长度为0。");
byte[] temdata = new byte[data.Length + 2];
int xda, xdapoly;
byte i, j, xdabit;
xda = 0xFFFF;
xdapoly = 0xA001;
for (i = 0; i < data.Length; i++)
{
xda ^= data[i];
for (j = 0; j < 8; j++)
{
xdabit = (byte)(xda & 0x01);
xda >>= 1;
if (xdabit == 1)
xda ^= xdapoly;
}
}
temdata = new byte[2] { (byte)(xda & 0xFF), (byte)(xda >> 8) }; //低字节在前,高字节在后
//temdata = new byte[2] { (byte)(xda & 0xff00 >> 8), (byte)(xda & 0x00FF) }; //高字节在前,低字节在后
return temdata;
}
#endregion