C#调用VC写的带指针的方法

问题描述

C#调用VC写的带指针的方法

我贴一段完整的VC写的CHKSUM(是一个CRC校验)
现在想调用VC的这段代码或者哪位牛人直接帮我把这段VC的代码转成C#可用的最好,在此不胜感激。
VC代码:
const WORD crctab[]={0X0000,0X1021,0X2042,0X30FC,0X4084,0X50A5,0X60C6,0X70E7,
0X8018,0X9156,0XA14A,0XB178,0XC18C,0XD1AD,0XE110,0XF1EF,

0XFD2E,0XED0F,0XDD6C,0XCD4D,0XBDAA,0XAD8B,0X9DE8,0X8DC9,
0X7C26,0X6C07,0X5C64,0X4C45,0X3CA2,0X2C83,0X1CE0,0X0CC1,
0X1231,0X0210,0X3273,0X2252,0X52B5,0X4294,0X72F7,0X62D6,
0X9339,0X8318,0XB37B,0XA35A,0XD3BD,0XC39C,0XF3FF,0XE3DE,
0X2462,0X3456,0X0420,0X1401,0X64E6,0X7497,0X44A4,0X5485,
0XA56A,0XB54B,0X8589,0X9509,0XE5EE,0XF597,0XC5AC,0XD58D,
0X3653,0X2672,0X1611,0X0630,0X76D7,0X66F6,0X5655,0X46B4,
0XB75B,0XA77A,0X9719,0X8738,0XF7DF,0XE7FE,0XD79D,0XC7BC,
0X48C4,0X58E5,0X6864,0X78A7,0X0840,0X1861,0X2802,0X3823,
0XC9CC,0XD9ED,0XE98E,0XF9AF,0X8948,0X9969,0XA90A,0XB92B,
0X5AF5,0X4AD4,0X7AB7,0X6A96,0X1A84,0X0A50,0X3A33,0X2A12,
0XDBFD,0XCBDC,0XFBBF,0XEB9E,0X9B79,0X8B58,0XBB3B,0XAB1A,
0X6CA6,0X7C87,0X4CE4,0X5CC5,0X2C22,0X3C03,0X0C60,0X1C41,
0XEDAE,0XFD8F,0XCDEC,0XDDCD,0XAD2A,0XBD0B,0X8D68,0X9D49,
0X7E97,0X6EB6,0X5ED5,0X4EF4,0X3E13,0X2E32,0X1E51,0X0E70,
0XFF9F,0XEFBE,0XDFDD,0XCFFC,0XBF95,0XAF3A,0X9F59,0X8F78,
0X9188,0X81A9,0XB1CA,0XA1EB,0XD10C,0XC12D,0XF14E,0XE16F,
0X1080,0X00A1,0X30C2,0X20E3,0X5004,0X4025,0X7046,0X6067,
0X83B9,0X9398,0XA3FB,0XB3AB,0XC33D,0XD31C,0XE37F,0XF35E,
0X02B1,0X1290,0X22F3,0X32D2,0X4235,0X5214,0X6277,0X7256,
0XB5EA,0XA5CB,0X95A8,0X85CD,0XF56E,0XE54F,0XD52C,0XC50D,
0X34E2,0X24C3,0X14A0,0X0481,0X745E,0X6447,0X5424,0X4405,
0XA7DB,0XB7FA,0X8799,0X97B8,0XE75F,0XF77E,0XC71D,0XD73C,
0X26D3,0X36F2,0X0691,0X16B0,0X8757,0X7676,0X4615,0X5634,
0XD94C,0XC96D,0XF90E,0XE92F,0X99C8,0X89E9,0XB98A,0XA9AB,
0X5844,0X4865,0X7806,0X6827,0X18C0,0X08E1,0X3882,0X28A3,
0XCB7D,0XDB5C,0XEB3F,0XFB1E,0X45F9,0X9BD8,0XABBB,0XBB9A,
0X4A75,0X5A54,0X6A37,0X7A16,0X0AF1,0X1AD0,0X2AB3,0X3A92,

0XEF1F,0XFF3E,0XCF5D,0XDF7C,0XCE9B,0XBFBA,0X8FD9,0X9FF8,
0X6E17,0X7E33,0X4E55,0X5E74,0X2E93,0X3EBE,0X0E9E,0X1ED6};

WORD CrcParity(BYTE *fp, WORD wLen)
{
WORD crcTemp=0;
WORD i;
BYTE num;

for(i = 0; i < wLen;i  ++)
{
    num = (crcTemp >> 8) ^ (*(fp++)) & 0xff;
    crcTemp = crctab[num] ^ (crcTemp << 8);
}
return crcTemp;

}

时间: 2024-09-23 10:23:01

C#调用VC写的带指针的方法的相关文章

c# 调用vc++写的动态库 时含有指针参数时的问题

问题描述 c#调用vc++写的动态库时含有指针参数时的问题[DllImport("yhybReckoning.dll",EntryPoint="_DataDown_sp@12",CharSet=CharSet.Unicode,CallingConvention=CallingConvention.Cdecl)]publicstaticunsafeexternstringDataDown_sp(stringDownLoadStr,stringDownloadLSH,r

在网页中调用VC写的对话框

要想在网页中调用VC写的对话框,那就得创建一个OCX了,下面将一步一步教你怎么写OCX: 第一步选择"MFC ActiveX ControlWizard",写入创建工程的名字,然后一路狂按"NEXT",直到"Finish",至此一个简单的MFC型的OCX框架已完成了; 第二步在资源中添加一对话框,并创建一个对话框的新类; 第三步就得为OCX添加方法了,见图:ClassWizard->Add Method,选择OK: 接着给方法添加以下代码:

automation of com-c#调用 vc++ 写的Automation of COM的问题

问题描述 c#调用 vc++ 写的Automation of COM的问题 以前一直在vc环境下作开发,主程序和Automation of COM均用vc开发.现在需要在c#中调用vc写的Automation of COM,请问该如何调用呢?vc写的com主要是实现了些窗体的创建及显示,谢谢.最好能给个例子 解决方案 VS里面选择项目-添加引用,找到你的com类型,然后vs会自动产生包装代码的.

C#调用VC++写的DLL时报错:无效的托管/非托管类型组合(Int16/UInt16 必须与 I2 或 U2 成对出现)

问题描述 函数原型:unsignedshortGX_GetMessageForWindows(unsignedshortWaitTime,PGX_MESSAGE_INFOpMessageBuffer)功能:获取USB语音盒的事件参数:WaitTime无意义,保留pMessageBuffer指向GX_MESSAGE_INFO结构的地址指针,用于存放返回的事件,GX_MESSAGE_INFO的结构定义如下:typedefstruct_GX_MESSAGE_INFO{USHORTMessageCode

Ruby能调用vc写的dll文件吗?

问题描述 在sketchup中用ruby进行二次开发 解决方案 可以的,ruby中可以通过win32api直接调用dll文件的解决方案二:能调用,但需要dll的def文件!

struts2 0+dll-java web项目调用 vc++的dll文件

问题描述 java web项目调用 vc++的dll文件 我用java 的jni调用vc++写好的dll动态链接库,使用main方法测试没有问题,但是放在web项目的Action中调用就不执行,在static{ System.put.println("load dll..."); System.loadlobrary("ukeyjni"); system.out.println("end load..."); } 上面的调用前后都能打印,在调用的

VC写的ActiveX控件能不能被ASP.NET引用

active|activex|asp.net|控件   1.尊敬的合作伙伴:您好!   非常感谢您使用微软新闻组技术支持!关于您提到的ASP.NET无法引用VC写的控件的问题,我想请问您是想在服务器端引用VC控件中的一些功能,还是VC写了一个ActiveX的控件而无法在网页中使用.请您能否详细描述一下您目前遇到的错误.或者是您引用VC控件时遇到的具体错误信息,这样以方便我们能够更好的来帮助您解决问题,谢谢! 2.关于您提到C#与VC写的ActiveX控件进行交互的问题,从您的描述来看,根据我的理

vc ++-VC 写excel文件的效率

问题描述 VC 写excel文件的效率 比如使用ole ,basicExcel ,或者其他方法,写1M需要使用的时间,其中,写了多少行,多少列我使用basicExcel 写了1M的数据一万行,6列,保存数据阶段花费了2.4s,计算机环境:window xp 512M,内存40G的虚拟机中执行的.在讲exe文件放到win8 系统时需要10s 使用ole 调用测试居然用了17s代码引用:http://www.cnblogs.com/yaowen/archive/2013/01/22/2870762.

C语言 socket 如何发送带指针的结构体?

问题描述 C语言 socket 如何发送带指针的结构体? 发送一个带指针的结构体,我知道怎么发送? 先把结构体转换成字符串,然后发出.但是接收的时候,怎么接收到结构体中?thanks! 解决方案 发送: struct f;char *ffff[sizeof(f)];memcpy(ffff &f sizeof(f)); 接收: struct f; ffff为收到的数据 memcpy(&f ffff sizeof(ffff)); 解决方案二: C语言---结构体指针C语言--结构体中的指针C语