有结构:
[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返回size = 16
实际大小是13,我可以假设它的大小为4,所以16看起来是正确的。
为什么Marshal.SizeOf(WAVEFORMATEX)
说18?
或者,如果18是正确的,那么为什么SendMessage返回16?
正如评论所指出的那样,大小值18是正确的,因为ushort
的大小是2而不是1。
“Win32 SendMessage func返回大小= 16”
SendMessage的返回值指定消息处理的结果,具体取决于发送的消息,但不是它发送的大小。