Giả sử tôi đăng ký nhiều tên hàm khác nhau trong Lua với cùng chức năng trong C. Bây giờ, mọi hàm C của tôi được gọi, có cách nào để xác định tên hàm nào được gọi không?Nhận lệnh lua khi hàm c được gọi là
ví dụ:
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);
}
Vì vậy, làm thế nào để tôi có được tên của những gì từng chức năng gọi nó?
Tại sao bạn muốn tất cả các hàm được ánh xạ tới cùng một thường trình? –
Tôi muốn có thể gọi một hàm cũng có con trỏ này, nhưng với hệ thống hiện tại, tôi chỉ có thể gọi các hàm tĩnh/toàn cục. –