是的,又是“这些”问题之一。
我已经建立并运行了一个基本的反射框架,尽管它仍然需要前端用户手动注册每个方法(包括返回类型、参数)。但是,我想到了使每个需要反射(reflect)的函数成为虚拟函数的想法,因为(即使它依赖于编译器)这些函数在技术上应该在 vtable 中(如果没有优化的话)。所以我得到了每个函数的地址,并成功调用/执行了每个函数。但是,有没有一种方法可以在给定此函数的地址的情况下“获取”返回类型和参数类型。
现在,在您说这是不可能的之前,我不介意最奇怪、最骇人听闻的方式,因为我这样做只是为了挑战。但是我不想要准备方法或任何类似的东西,因为那不是我的目标。
最佳答案
使用反编译器或调试器(idapro、ollydebug、windasm ...)然后检查在调用该函数之前有多少推送来猜测参数,并尝试找到存储在 eax 中的内容以了解什么是返回。这是低级的东西,根本不是一件容易的事。
关于c++ - 获取有关函数地址的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33026365/