发送消息给非C#程序时,不能使用序列化和反序列化,因此就必须把消息转为内存格式,然后再发送出去,这时就涉及到消息在内存中的对齐方式了。
通常我们发送消息都是用struct,在想要改变对齐方式的struct之前加上下述语句即可:
[StructLayout(LayoutKind.Sequential, Pack=4)]
Pack表示按照几个字节对齐
本文探讨了在C#中发送消息时如何通过使用[StructLayout]属性来改变struct的对齐方式,以优化内存使用并提高性能。
发送消息给非C#程序时,不能使用序列化和反序列化,因此就必须把消息转为内存格式,然后再发送出去,这时就涉及到消息在内存中的对齐方式了。
通常我们发送消息都是用struct,在想要改变对齐方式的struct之前加上下述语句即可:
[StructLayout(LayoutKind.Sequential, Pack=4)]

被折叠的 条评论
为什么被折叠?