- 主题:C语言是怎么处理反射需求的?
已经搞出来啦,用了十几年了。
我是在答,不是问。
【 在 gluon521 的大作中提到: 】
: 看来你这问题略复杂,估计光靠问是没法得到结果的。
: 你得找个做逆向有经验的人帮你搞,这样快一点。
: 或者自己慢慢去摸索,如果不着急的话。
: ...................
--
修改:ylh1969 FROM 221.221.51.*
FROM 221.221.51.*
嗯,多谢!我大致理解了。
还有个问题(结合我之前听说的一些java的皮毛),这个需求 是不是相当于通过网络传一个文件,然后别的机器拿到这个信息后,重新编译?
【 在 ylh1969 的大作中提到: 】
: 在网络间传递数据。结构数据基本没法传。一个原因是含有二进制信息,还有,不同系统和编译器,对相同的结构,布局并不相同,成员边界对齐方式不同。还有大小端的问题。那么,不同系统间互传信息,就需要序列化。JSON就是一种序列化方式、格式。
: 数据到达以后,还需要反序列化,把JSON转换回结构。那么,就需要另外一个函数:
: JSON_to_struct(void *struct_p,JSON json);
: ...................
--
FROM 14.16.218.*
重新反序列化到它的对象里,或直接使用json。
【 在 il15 的大作中提到: 】
: 嗯,多谢!我大致理解了。
: 还有个问题(结合我之前听说的一些java的皮毛),这个需求 是不是相当于通过网络传一个文件,然后别的机器拿到这个信息后,重新编译?
:
--
FROM 221.221.51.*
这里边最难的是位置,就是成员相对结构头的偏移量。
这个不能让你写,不同的编译器对齐规则不同。
在模板第一次被使用时,要自动算出来。
以后的使用就很简单了
p = struct_p + t->offset; //找到了变量的位置。效率很高,几乎与用成员名访问效率相同。
【 在 gluon521 的大作中提到: 】
: 看来你这问题略复杂,估计光靠问是没法得到结果的。
: 你得找个做逆向有经验的人帮你搞,这样快一点。
: 或者自己慢慢去摸索,如果不着急的话。
: ...................
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.51.*