私はプラットフォームに依存しないバイナリファイルI/Oのための小さなCまたはC++ライブラリを見つけることを数ヶ月にわたって試みてきました。 。プラットフォームに依存しないバイナリファイルI/OのためのC/C++ライブラリ
私はwxWidgetsやQtのような巨大なライブラリがあることを知っていますし、JavaやC#のような言語もそれらを持っていますが、巨大なフレームワークの代わりに小さなライブラリを使うことを好みます。
私はプラットフォームに依存しないバイナリファイルI/Oのための小さなCまたはC++ライブラリを見つけることを数ヶ月にわたって試みてきました。 。プラットフォームに依存しないバイナリファイルI/OのためのC/C++ライブラリ
私はwxWidgetsやQtのような巨大なライブラリがあることを知っていますし、JavaやC#のような言語もそれらを持っていますが、巨大なフレームワークの代わりに小さなライブラリを使うことを好みます。
Google Protocol Buffersはどうですか?
ライブラリには、C++、Java、Pythonのバインディングが含まれています。
すべてのC++コンパイラでパッケージ化されているfstreamを使用するだけではどうでしょうか。あなたはios :: binaryフラグを設定して、それをOSに依存しないようにsizeofを十分に使います。例えば:http://courses.cs.vt.edu/~cs2604/fall02/binio.htmlと
私の経験では、fstreamの使用は、プラットフォームに依存するものを扱わなくても、非常に扱いにくい(長いと繰り返しの行、多くのキャスト)。 – testtesttes
バイナリ入力IMOを変換する必要はありません。ちょうどここでstdライブラリに行きます。 – rubenvb
それはお尻に大きな痛みがあり、バイナリでintを文字のように嫌なハックに頼らずに動作しないので... – MarcusJ
http://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspxはそれの目標のBoost.Serialization
を見ることもできますが、「データポータビリティ - 一つのプラットフォーム上で作成されたバイトのストリームは、他に読めるべきである。」です
同様の機能を提供する他のライブラリへのリンクもあります。私はsqliteのを使用することを好むほとんどのファイル形式の作品については
うわー! I/Oのための*小さな*ライブラリの完璧な例:) – valdo
は:http://www.sqlite.org/クールな事はあなたがオペレーティングシステム間とプログラミング言語とデバイスを同じデータファイルにアクセスすることができます。
SQLiteは、ボクセルボリュームのようなデータ型を格納するのには役に立ちません –
ああ、7年以上経過しています...あなたはそれを見つけましたか? – kbec