C2338编译错误

今天将一个工程升级为 vs2019 64 位编译时出现如下错误:

error C2338: Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined.

问题原因是工程配置中设置了 结构成员 1 字节对齐。
修改方案工程配置即可:

C2338编译错误_第1张图片

如果需要设置结构体直接对齐,不要在工程配置中设置,因为这里会扰乱其他结构体的直接对齐。对某个结构体需要字节对齐,在代码中使用 #pragma pack 设置即可。

你可能感兴趣的:(C2338编译错误)