私は同じ引数で関数を呼び出す必要がありますが、手作業でパラメータをコピーする必要はありません(将来はマクロになりますが、これは自動的に行われます)。関数の最初の引数へのポインタを取得するには?
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のポインタを取得するソリューションはありますか?
P.S.これは、Unreal Engine 4フレームワークです(名前を呼び出す関数は、Unreal Reflection Systemです)。
「手作業でパラメータをコピーしない」代わりに参照を渡すのはどうですか? – SingerOfTheFall
@SingerOfTheFallしかし、コードでこのパラメータ名を使用せずに参照を取得するには?将来のマクロでは、直接処理をパラメータに減らす必要があります。 – Broly