编译出错,求帮忙分析下问题
#include <Windows.h>
#include <stdio.h>
int crc = NULL;
int have_crc_table = NULL;
unsigned int crc32_table[256];
void Crc_Make_Table()
{
have_crc_table = 1;
for (int i = 0; i < 256; i++)
{
crc = i;
for (int j = 0; j < 8; j++)
{
if (crc & 1)
crc = (crc >> 1) ^ 0xEDB88320;
else
crc >>= 1;
}
crc32_table[i] = crc;
}
}
unsigned int Calc_Crc32(unsigned int crc, char *Data, int len)
{
crc = 0xFFFFFFFF;
if (!have_crc_table)
Crc_Make_Table();
for (int i = 0; i < len; i++)
{
crc = (crc >> 8) ^ crc32_table[(crc ^ Data[i]) & 0xff];
}
return ~crc;
}
int main()
{
printf("Demo\n\n");
unsigned int uMainMoudleSumA = Calc_Crc32(0, (char*)0x400000, 0x95000);
while (1)
{
unsigned int TmpCrcSum = Calc_Crc32(0, (char*)0x400000, 0x95000);
if(TmpCrcSum != uMainMoudleSumA)
{
MessageBoxA(NULL, "CRC检测修改了此内存", "ABC提示", MB_OK);
}
Sleep(2000);
}
getchar();
return 0;
}