C++ метод в C# (передаю массив)
От: DarkSergey  
Дата: 16.03.16 20:51
Оценка:
Добрый день, нет опыта с C++, и не могу переписать код под с# (расчет CRC для устройства ТЕНЗО-М)
Решил сделать DLL на с++ (CLR) и воспользоваться им в C#

проблема в том, что я передаю массив байт в метод С++ и компилятор говорит что не может перести массив байт в байт.
Помогите поправить синтаксическую ошибку:

C#
byte[] b = new byte[] { 0x01, 0xc5 };
WinCRCLib.Class1 dll = new WinCRCLib.Class1();
byte crc = dll.ucCrcMaker1(b, Convert.ToByte(b.Length + 1));


C++

using namespace System;
namespace WinCRCLib {

public ref class Class1
{        
public:
    unsigned  char ucCrcMaker1(System::Byte InputData[], System::Byte BytesNumber)
    {
        register unsigned char i, j, Data, CrcCode = 0, Polinom = 0x69;
        for (i = 0; i < BytesNumber; i++)
        {
            Data = InputData[i];
            for (j = 0; j < 8; j++)
            {
                if (CrcCode & (1 << 7))
                {
                    CrcCode *= 2;
                    if (Data & (1 << 7)) CrcCode++;
                    CrcCode ^= Polinom;
                }
                else 
                {
                    CrcCode *= 2;
                    if (Data & (1 << 7)) CrcCode++;
                } 
                Data *= 2;
            } 
        } 
        return CrcCode;
    } 
};
}



Пожалуйста помогите.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.