AUDIOFORMAT (WAVEFORMATEX) 结构的大小
Size of the AUDIOFORMAT (WAVEFORMATEX) structure
有结构:
[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
func returns size = 16
实际大小是 13,我可以假设它以 4 的大小对齐,所以 16 看起来是正确的。
为什么 Marshal.SizeOf(WAVEFORMATEX)
说 18?
或者,如果 18 是正确的,那么为什么 SendMessage returns 16?
正如评论所指出的,大小值 18 是正确的,因为 ushort
的大小是 2 而不是 1。
"Win32 SendMessage 函数 returns 大小 = 16"
SendMessage 的 return 值指定消息处理的结果,取决于发送的消息,而不是发送的消息的大小。
有结构:
[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
func returns size = 16
实际大小是 13,我可以假设它以 4 的大小对齐,所以 16 看起来是正确的。
为什么 Marshal.SizeOf(WAVEFORMATEX)
说 18?
或者,如果 18 是正确的,那么为什么 SendMessage returns 16?
正如评论所指出的,大小值 18 是正确的,因为 ushort
的大小是 2 而不是 1。
"Win32 SendMessage 函数 returns 大小 = 16"
SendMessage 的 return 值指定消息处理的结果,取决于发送的消息,而不是发送的消息的大小。