1
我正在编写一个跨平台的客户端,并在提取使用的存档中,它为每个文件使用IEEE 802.3以太网CRC-32校验和。我跑对所有像这样的文件,这个检查:跨平台版本的ntohl()? - C++
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”和涉及反转字节序的其他库。
谢谢!
这def可能可以依赖__WIN32__被定义或不。如果没有,请包括而不是winsock。 –
dbrank0
2012-01-06 06:36:47
@ dbrank0如果你打算发布一个很好的评论发布一个例子;-) – 2012-01-06 06:38:20
@AdrianCornish'ntohl'只有在字节排序不是大端时才会交换。对齐与它无关。 – moshbear 2012-01-06 09:44:56