C,C ++?如何编译

时间:2015-03-27 23:43:13

标签: c++

我收到了以下源代码,它生成输入字符串的专有CRC值。您能否帮助识别语言并建议我可以编译哪些工具/环境并使其工作。感谢

WORD CalcCRC(BYTE *pstr, WORD len)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    WORD crc;
    WORD  i;
    crc = 0;                   // initialise CRC
    for (i = 0; i<len; i++)       // calculate CRC for every single byte
    {
        CRCBYT(*pstr, &crc);
        pstr++;
    }
    return crc;
}

void CRCBYT(unsigned char byt, WORD *pcrc)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    int i;
    WORD fl1;
    for (i = 0; i<8; i++)
    {
        fl1 = ((*pcrc) & 0x8000);  //MSB = 1?
        (*pcrc) <<= 1;               //CRC shift left
        if (byt & 0x80)            //MSB = 1?
            (*pcrc)++;               //Byte shift left
        byt <<= 1;
        if (fl1)                   //if fl1 XOR of CRC
            (*pcrc) ^= 0x1021;
    }
}

1 个答案:

答案 0 :(得分:4)

它来自Windows,但如果你取出AFX_MANAGE_STATE行(似乎不需要),它应该在任何C或C ++编译器中编译。

如果您没有为Windows编译,则可能需要添加以下typedef:

 typedef unsigned short WORD;
 typedef unsigned char BYTE;