【发布时间】:2018-02-11 03:31:26
【问题描述】:
我目前正在像这样调用函数指针
int(*function)(int a, int b, bool c) = (int(*)(int, int, bool))0x12341234;
但是我有一个问题,如果我想调用函数指针而不指定参数怎么办?
即如果我知道该函数位于 0x12341234 并且我知道参数(int、int、bool)有没有办法,所以我可以这样称呼它:
void callFunctionUsingMemAddress(int funcaddr, ...)
{
executefunction(funcaddr, ...);
}
然后我会像这样调用位于 0x12341234 的函数
callFunctionUsingMemAddress(0x12341234, 54, 77, false);
根据我所做的研究,我认为我需要使用可变参数,但我还没有找到使用可变参数的好方法。
【问题讨论】:
-
为什么需要将原始地址分配给函数指针?
-
@NickyC 我有一个“附加”到程序进程的插件,然后我使用函数原始地址从插件附加到的程序中调用函数。
标签: c++ function pointers memory call