Przypuszczam, że rejestruję wiele różnych nazw funkcji w Lua do tej samej funkcji w C. Teraz, za każdym razem, gdy wywoływana jest moja funkcja C, czy istnieje sposób na określenie, która nazwa funkcji została wywołana?Uzyskaj polecenie lua, gdy funkcja c nazywa się
na przykład:
int runCommand(lua_State *lua)
{
const char *name = // getFunctionName(lua) ? how would I do this part
for(int i = 0; i < functions.size; i++)
if(functions[i].name == name)
functions[i].Call()
}
int main()
{
...
lua_register(lua, "delay", runCommand);
lua_register(lua, "execute", runCommand);
lua_register(lua, "loadPlugin", runCommand);
lua_register(lua, "loadModule", runCommand);
lua_register(lua, "delay", runCommand);
}
Tak, jak mogę uzyskać nazwę funkcji, co kiedykolwiek nazwał go?
Dlaczego wszystkie funkcje mają być odwzorowywane na tę samą procedurę? –
Chciałbym móc wywołać funkcję, która ma również ten wskaźnik, ale biorąc pod uwagę obecny system, mogę tylko wywoływać funkcje statyczne/globalne. –