gpt4 book ai didi

c++ - 访问程序中的符号表以打印结构的字段名称

转载 作者:行者123 更新时间:2023-11-30 20:35:50 29 4
gpt4 key购买 nike

我想打印结构的所有字段名称(我正在使用 Visual Studio 2012)。

现在,我知道字段名称信息在二进制文件中丢失,但在编译时存在。因此,如果以某种方式,我可以访问代码中结构的符号表,那么我应该能够打印字段名称。

用例是结构的定义可能会随着不同的体系结构而改变,我想直接从符号表访问字段名称,而不是编写依赖于体系结构的代码。

编辑:

我感兴趣的结构体的字段名称是“winnt.h”中存在的“_CONTEXT”。它有多个定义,我想在当前架构上打印定义,而无需编写依赖于架构的代码。

最佳答案

当然,您无法在 C/C++ 中执行此操作,因为该语言没有 C# 或 Java 那样的反射。您可以编写自己的函数,将名称、类型、大小打印到某个 string 对象中。您可能有一个带有虚函数RenderMembers(或类似函数)的接口(interface)。让所有需要的类/结构继承它并实现它。

MFC RUNTIME_CLASS 有类似的东西。

关于c++ - 访问程序中的符号表以打印结构的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37612171/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com