Я пишу кроссплатформенный клиент и в архивах, извлеченных для использования, он использует контрольную сумму IEEE 802.3 Ethernet CRC-32 для каждого файла.Я запускаю эту проверку для всех файлов следующим образом:
if(s3d_meta_block.crc != 0x61580AC9)
{
errorLog.writeError("File %i is not a valid file/ or is the directory", i);
}
В итоге происходит сбой на каждом из файлов, и я обнаружил, что он записан в другом месте в подобных клиентах с ntohl (0x61580AC9).
Я пишу это на 64-битной Windows, и в идеале хотелось бы, чтобы это работало на каждой платформе без необходимости включать «Winsock2.h» и другие библиотеки, участвующие в обращении порядка байтов.
Спасибо!