Есть структура:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct WAVEFORMATEX
{
public ushort wFormatTag;
public ushort nChannels;
public uint nSamplesPerSec;
public uint nAvgBytesPerSec;
public ushort nBlockAlign;
public ushort wBitsPerSample;
public ushort cbSize;
};
Marshal.SizeOf(WAVEFORMATEX)
говорит, что = 18
Функция Win32 SendMessage
возвращает размер = 16
Фактический размер равен 13, и я могу предположить, что он выровнен по размеру 4, поэтому 16 выглядит правильно.
Почему Marshal.SizeOf(WAVEFORMATEX)
говорит 18?
Или, если 18 правильно, то почему SendMessage возвращает 16?