- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
lseek( h, headerSize+0x500, SEEK_SET );
if( _read( h, &buf, sizeof buf ) != sizeof buf )
goto __read_error;
for( int i = 0; i < NUM_EL(sig); ++i ) {
if( *(long*)&buf[sig->offs] != *(long*)sig->str ) {
__wrong_format:
message( .... );
_close( h );
return FALSE;
}
}
if( *(long*)&buf[0x2C] != *(long*)"_TAG" ) {
message( .... );
_close( h );
return FALSE;
}
if( *(long*)&buf[0x32] != *(long*)"_VER" )
goto __wrong_format;
*platform = *(ushort*)&buf[0x30];
if( ver ) {
long verOffs = headerSize + ((ulong)(*(ushort*)&buf[0x38]) << 4) + *(ushort*)&buf[0x36];
lseek( h, verOffs, SEEK_SET );
if( _read( h, ver, sizeof(float) ) != sizeof(float) )
goto __read_error;
}
_close( h );
Нужно было посмотреть, как делается одна вещь, залез в исходники некоторого старого __С++__(!!!!!!!!!!!!!!)(так что не надо "где здесь с++"=) ) проекта, там классы и все, как положено =)
Причем писал не школьник, а взрослый дядька, у которого опыта больше, чем у меня сознательной жизни(ну это я образно=) ) Я до сих пор пребываю в состоянии культурно-эстетического шока =)