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
@ dbrank0良いコメントを投稿する場合は、例:-) –
@AdrianCornish 'ntohl'は、バイトオーダーがビッグエンディアンでない場合にのみスワップします。アライメントはそれとは関係ありません。 – moshbear