11-21-2016, 01:44 PM
Quote:If the order is not important, then also don't need special packing. I thought the type is used with a dll function.
yes, i missed that and now i understand why pragma is used, it's indeed a dll function in bladeenc.dll
So order IS important as the call of the procedure must match the headers one.....
------------------------------------------------------------------
playing with sizeof, using pragma it's 23, 24 without it.
so this way is explicit packing (you say what variable to pack)
type ____BE_CONFIG11 dwSampleRate !byMode [+1]@wBitrate bPrivate bCRC bCopyright bOriginal
and this one is implicit or automatic, the argument seems to do it automatically
type ____BE_CONFIG11 dwSampleRate !byMode @wBitrate bPrivate bCRC bCopyright bOriginal [pack1]
Is this statement correct?
but i wonder why so much hassle to gain one byte meory, and seems from my readings that it's less perfomant than odd numbers of bytes.
2.
Quote: In QM, nonstandard member offsets must be explicitly specified. Including union members. Like in C#. In C/C++ for it are used keyword union and directive #pragma pack.
type __BE_CONFIG1 ____BE_CONFIG11'mp3 []____BE_CONFIG12'LHV1 []____BE_CONFIG13'aac
the empty brackets do mean to use previous packing method then, correct? but they are not the same size....
or is it just a convention for QM to work correctly?
3. ok, just translation of type to QM which own less types than C...i put them on a paper for further reference