次の様な 3DS 形式で保存するコード.
データ部分が空の時,アプリケーションエラー.

bool save_3DS (FILE* ofp,const tDS_Chunk& chnk)
{
if (ofp == NULL) { return false ; }
{
u_16 id = chnk.GetID() ;
u_32 len = chnk.GetLen() ;
v_u__8 data= chnk.GetData() ;
::fwrite(&id, 1, sizeof(u_16), ofp) ;
::fwrite(&len, 1, sizeof(u_32), ofp) ;
::fwrite(&data[0], data.size(), sizeof(u__8), ofp) ;
}
for (size_t index=0 ; index<size_t(chnk.GetChildCount()) ; index++) {
tDS_Chunk child = chnk.GetChild(long(index)) ;
bool result = ::save_3DS(ofp,child) ;
if (!result) { return false ; }
}
return true ;
}
::fwrite(&data[0], data.size(),sizeof(u__8), ofp) ; がうまくない.
次の様な感じでコードを修正.
if (data.size() > 0) { ::fwrite(&data[0], data.size(), sizeof(u__8), ofp) ; }
VC 6 や VC 14 では,たまたまだと思うがエラーにならなかった.
