【发布时间】:2017-06-11 16:49:26
【问题描述】:
我想用相同的参数反射调用函数而不手动处理参数(将来这将是宏,这将是自动的)。
UFUNCTION()
void PleaseRespawnMe(FName className)
{
uint64 _frame; // Here is stack pointer?
UFunction* func = GetController()->ServerCheatManager->FindFunction("PleaseRespawnMe"); // function with same name
void* startStack = (void*)(&_frame - func->ParmsSize); // Start stack is pointer to first variable minus params size?
GetController()->ServerCheatManager->ProcessEvent(func, startStack); // calling using pointer of first argument
}
但是&_frame 指针离&className 太远了。有没有使用局部变量地址获取args指针的解决方案?
附:这是 Unreal Engine 4 框架(通过名称调用函数是虚幻反射系统)。
【问题讨论】:
-
without manually coping params改为传递引用怎么样? -
@SingerOfTheFall 但是如何在代码中不使用此参数名称的情况下获取参考?在未来的宏中,我需要减少对参数的任何直接处理。
标签: c++ memory reflection stack unreal-engine4