如何用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

posted @   findumars  Views(1753)  Comments(0Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2015-06-03 程序不稳定是因为C++基础不扎实
2015-06-03 一个优势的公司基本不可能再被同样的产品颠覆了(应该创新,从而干掉旧的需求基础)
2015-06-03 Little-endian的一个好处:在变量指针转换的时候地址保持不变
2015-06-03 Delphi程序的自我修改
点击右上角即可分享
微信分享提示