0

我正在浏览班级成员,并试图找出他们是哪种数据类型。

class ZObject
{
public:
    int a; //0x00
    bool b; //0x01
    DWORD c; //0x02
    DWORD d; //0x03
    D3DXVECTOR3 e; //0x04
};
DWORD offset = 0x01;
void PrintDataType( DWORD* pointertozobject )
{
  printf(  typeid(*(pointertozobject +offset)).name() );
}

对于我对该函数的每次调用,我不断增加offset,但它总是打印哪个是 的类型,我怎样才能在该偏移量中打印类成员的数据类型?(它不需要是指针,我只需要识别它)+=0x01unsigned longpointertozobject

4

1 回答 1

1

C++ 没有那种类型反射。正如评论所述,您的表达类型DWORD就是您得到的答案。地址没有意义。

为了从结构偏移量中查找类型,您必须自己构建表,使用offsetOf()加号typeid()手动记录每个成员的类型及其偏移量。然后您可以在表格中搜索所需的偏移量并找到类型。

于 2013-06-23T05:42:20.897 回答