我正在尝试向函数添加参数,并且我需要新参数是结构类型。
这是我要更改的功能,来自dyld_decache.cpp
void prepare_patch_objc_methods(uint32_t method_vmaddr, uint32_t override_vmaddr);
我是这样改的:
template <typename T>
void prepare_patch_objc_methods(typename T::type, uint32_t list_vmaddr, uint32_t override_vmaddr);
在 的实现中prepare_patch_objc_methods
,我更改了所有出现的method_t
toT
并且它编译得很好。
method_t
结构定义如下:
struct method_t {
uint32_t name;
uint32_t types;
uint32_t imp;
};
现在,调用此函数时如何传递结构类型?
我试着这样做
this->prepare_patch_objc_methods(method_t, class_data->baseMethods, class_obj->data + offsetof(class_ro_t, baseMethods));
但我收到以下错误:'method_t' does not refer to a value