如何用vs查看结构体布局

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用vs查看结构体布局相关的知识,希望对你有一定的参考价值。


今天遇到一个问题:
假设在每个系统的structA 结构不同,我们在windbg看了以后直接拿来用,自己定义成结构体,如何来验证这个结构体内存布局是否和windbg一致。
当然笨办法是自己一个个成员数过去,然而人眼总有看错的时候,你承认吧~~。这里用一个极其巧妙的方式解决这个问题
在vs当前工程中,添加了结构体定义,并编译成功后,解决方案视图,工程 右键 -> 属性 -> C/C++ -> 命令行 -> 其它选项 加入
/d1reportSingleClassLayoutstructA
注意structA可以是任何类名、结构体名、联合体 等结构型结构,注意structA之前并没有空格
这是输出某个结构体内存布局的方式,如果要输出所有工程引用到的结构体布局,则可以用
/d1reportAllClassLayout
结果会非常庞杂

挺好用的,针对vc6编译器以上版本有效(我的vc6编译器版本为12.00.8168)

https://www.0xaa55.com/forum.php?mod=viewthread&tid=1547&extra=page%3D4

以上是关于如何用vs查看结构体布局的主要内容,如果未能解决你的问题,请参考以下文章

求教一个问题,如何用sort对结构体数组排序

结构体对齐——结构体内存布局

如何用C语言读取txt文件中的数据到结构体数组中

C语言函数中如何返回一个结构体类型

c语言结构体调用

如何交换两个结构体