c++ - C、C++?如何编译

标签 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;
    }
}

最佳答案

它来自 Windows,但如果您删除 AFX_MANAGE_STATE 行(似乎不需要),它应该可以在任何 C 或 C++ 编译器中编译。

如果您不是为 Windows 编译,您可能需要添加以下类型定义:

 typedef unsigned short WORD;
 typedef unsigned char BYTE;

关于c++ - C、C++?如何编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311904/

相关文章:

c++ - 标题中的多行文本

c++ - 示例提供的代码中的 Qt 堆损坏

c++ - 编译器不将 vector 识别为类成员

c++ - 使用没有功能的 extern "C"

c++ - "Symbol ' 在命名空间中映射 ' could not be resolved"

c++ - 使用 winsock 的 p2p 通信

c++ - qt c++ 无法在 win xp sp1 上运行

c++ - caml_hash_varian返回的值在什么范围?

c++ - 在 C++ 11 中使用来自模板类型的成员函数指针创建方法参数

c++ - 没有从类型 bankAccount 的返回值到函数返回类型 int 的可行转换