2010-11-28 9 views
9

私はプラットフォームに依存しないバイナリファイルI/Oのための小さなCまたはC++ライブラリを見つけることを数ヶ月にわたって試みてきました。 。プラットフォームに依存しないバイナリファイルI/OのためのC/C++ライブラリ

私はwxWidgetsやQtのような巨大なライブラリがあることを知っていますし、JavaやC#のような言語もそれらを持っていますが、巨大なフレームワークの代わりに小さなライブラリを使うことを好みます。

+0

ああ、7年以上経過しています...あなたはそれを見つけましたか? – kbec

答えて

3

Google Protocol Buffersはどうですか?

ライブラリには、C++、Java、Pythonのバインディングが含まれています。

1

すべてのC++コンパイラでパッケージ化されているfstreamを使用するだけではどうでしょうか。あなたはios :: binaryフラグを設定して、それをOSに依存しないようにsizeofを十分に使います。例えば:http://courses.cs.vt.edu/~cs2604/fall02/binio.html

+1

私の経験では、fstreamの使用は、プラットフォームに依存するものを扱わなくても、非常に扱いにくい(長いと繰り返しの行、多くのキャスト)。 – testtesttes

+1

バイナリ入力IMOを変換する必要はありません。ちょうどここでstdライブラリに行きます。 – rubenvb

+2

それはお尻に大きな痛みがあり、バイナリでintを文字のように嫌なハックに頼らずに動作しないので... – MarcusJ

3

http://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspxはそれの目標のBoost.Serialization

を見ることもできますが、「データポータビリティ - 一つのプラットフォーム上で作成されたバイトのストリームは、他に読めるべきである。」です

同様の機能を提供する他のライブラリへのリンクもあります。私はsqliteのを使用することを好むほとんどのファイル形式の作品については

+10

うわー! I/Oのための*小さな*ライブラリの完璧な例:) – valdo

1

は:http://www.sqlite.org/クールな事はあなたがオペレーティングシステム間プログラミング言語デバイスを同じデータファイルにアクセスすることができます。

+0

SQLiteは、ボクセルボリュームのようなデータ型を格納するのには役に立ちません –

関連する問題