我想添加一個參數到一個函數,我需要新的參數是一個結構類型。如何將結構類型作爲參數傳遞給函數?
這裏是我想改變的功能,從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
所有出現T
和它編譯得很好。
的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
這正是我正在尋找的,謝謝! – 0xced 2013-03-06 09:43:49