你如何布置自定义二进制文件格式?

bob*_*obo 7 c++ layout serialization

每个应用程序都有自己的自定义二进制文件格式(例如.mpq,.wad).最重要的是,它通常是拉链的.

所以,我的问题是,你如何巧妙地 /熟练地布局文件的二进制内容.你有一个像目前结构的"目录"吗?将所有内容转储到一个文件中更好吗?

所以说你有一个数组Shapes,并且每个Shape都是变形的顶点数据(所以顶点数据已经从它最初加载的文件中改变了,所以它应该重新保存).

class Shape
{
    vector<Vertex> verts ;
} ;

class Sphere : public Shape { } ; // ...more geometric shapes (Tet, Cube) are defined..

class Model : public Shape { } ; // general model "Shape" loaded from file

vector<Shape*> shapes ; // save me!  contents are mix of Model, Sphere, Tet..
// each with variable number of verts
Run Code Online (Sandbox Code Playgroud)

Bob*_*obS 7

我最喜欢的关于文件格式主题的文章是http://www.fadden.com/techmisc/file-formats.htm.

除此之外,它可能归结为您存储的数据类型以及数据的使用方式(主要是通过网络传输?寻求访问权限有多重要?等等......).

从那篇文章开始; 如果您已经拥有需要设计的格式,它可能有助于明确您的想法.