次のようにモノに内部呼び出しを追加しようとしています:
void addCall(char *name, char *amx_name)
{
AMX_NATIVE native = sampgdk::FindNative(name);
void(*natcall)() = []()
{
//Can't access native here... :(
callNative(native);
};
mono_add_internal_call(name, (void *)natcall);
}
内部呼び出しは、いくつかのデータ (ネイティブ AMX_NATIVE へのポインター) を使用してメソッドを呼び出す必要があります。ただし、ラムダ コード内で値にアクセスすることはできません。
変数キャプチャ ( [&]() { ... } ) を使用すると、ラムダ コードを void にキャストできません * これを mono_add_internal_call と呼ぶ必要があります。
誰かがこの問題を回避する方法を考えられますか?