- 主题:C语言是怎么处理反射需求的?
对。我们实际的函数,要加两个参数:结构说明书,或叫做TEMPLATE。选择器choose。
在TEMPLATE里告诉你每个成员的名字,类型,长度,位置。
choose: "名字,名字,名字",NULL取全部成员。。
【 在 gluon521 的大作中提到: 】
: 首先你得知道函数是干嘛的,输入参数都是啥东西,输出是啥,否则没法弄。
: 哪怕你用反射,你也得知道属性或者方法的名字,变量类型和个数吧。
: 不然给你一堆,你也不知道用哪个,怎么用。还是得一个个试。
: ...................
--
修改:ylh1969 FROM 221.221.51.*
FROM 221.221.51.*
已经搞出来啦,用了十几年了。
我是在答,不是问。
【 在 gluon521 的大作中提到: 】
: 看来你这问题略复杂,估计光靠问是没法得到结果的。
: 你得找个做逆向有经验的人帮你搞,这样快一点。
: 或者自己慢慢去摸索,如果不着急的话。
: ...................
--
修改:ylh1969 FROM 221.221.51.*
FROM 221.221.51.*
重新反序列化到它的对象里,或直接使用json。
【 在 il15 的大作中提到: 】
: 嗯,多谢!我大致理解了。
: 还有个问题(结合我之前听说的一些java的皮毛),这个需求 是不是相当于通过网络传一个文件,然后别的机器拿到这个信息后,重新编译?
:
--
FROM 221.221.51.*
这里边最难的是位置,就是成员相对结构头的偏移量。
这个不能让你写,不同的编译器对齐规则不同。
在模板第一次被使用时,要自动算出来。
以后的使用就很简单了
p = struct_p + t->offset; //找到了变量的位置。效率很高,几乎与用成员名访问效率相同。
【 在 gluon521 的大作中提到: 】
: 看来你这问题略复杂,估计光靠问是没法得到结果的。
: 你得找个做逆向有经验的人帮你搞,这样快一点。
: 或者自己慢慢去摸索,如果不着急的话。
: ...................
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.51.*