save the money I looked at your pascal C header conversion and everything looks fine...possible problems are...bool<->boolean...in C++ sizeof(bool) is compiler-specific (doesn't have to be 1 byte), sizeof(enum_type) is also compiler-specific and can be minimum size required to express the enumeration or fixed 32/64 bits....basicly the problem should be in field size/alignment....also in the original C source there is no packing directive so it defaults to the default of the compiler used which can also cause problems...