太早 发表于 2023-12-25 15:57:54

求助,假设有N个成员,取出所有类成员的值

本帖最后由 太早 于 2023-12-25 15:59 编辑

求助,假设有N个成员,取出所有类成员的值,有啥办法,除了.取对象数据 () 这个,这个会取出字节集类的长度。

hcwanz 发表于 2023-12-25 16:05:14

读类地址。
c++的类,其实就是结构体的加强版。
如何读取结构体成员,可以参考:
https://bbs.voldp.com/thread-17261-1-1.html

太早 发表于 2023-12-25 16:22:14

hcwanz 发表于 2023-12-25 16:05
读类地址。
c++的类,其实就是结构体的加强版。
如何读取结构体成员,可以参考:


:(完全看懵,我只想枚举火山类成员变量数量,然后把他值全取出来

uuyyhhjj 发表于 2023-12-25 17:10:20

类是你自己定义的,不同成员类型占用内存大小不同,应该没法直接判断未知类的成员数量,你要是想定义一个可以枚举的动态成员,可以用哈希表或数组这些去实现

呵呵仙8 发表于 2023-12-25 18:02:14

你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到那个就是你想要的成员内容不就知了!?公开的成员和不公开的成员是分开的哦?不要认为你连着写成员.它就会连成一片哦!!

太早 发表于 2023-12-25 20:01:25

呵呵仙8 发表于 2023-12-25 18:02
你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到 ...

:(哎,就是没办法。不知道用啥方面能实现这功能

太早 发表于 2023-12-25 20:06:05

呵呵仙8 发表于 2023-12-25 18:02
你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到 ...

打开CE看那地址就一脸懵逼,按理说是不是可以取到成员变量的数量,还有成员变量的地址。哈哈哈

呵呵仙8 发表于 2023-12-25 21:13:15

你是说结构体吧?用于和第三方语言通信吗?可以用GetProcessHeap,HeapFree,HeapAlloc,GlobalSize.自己构建和对方一样结构的变量!!当然,前提是对方堆栈也是由这些函数产生的.目前发现易语言的变量就是这些函数创建的.不知C++是不是!不精通!!火山的变量不是这些函数产生的.所以,火山没有交换指针一说!!
页: [1]
查看完整版本: 求助,假设有N个成员,取出所有类成员的值