Я пытаюсь использовать библиотеку tolua ++ для встраивания Lua-скрипта в мое приложение на c ++. Для меня понятно, как связывать классы C ++ с Lua, создавать их из сценария Lua и вызывать методы. Однако я не могу понять, как вызывать функции скрипта Lua из C ++ (с передачей аргументов и получением возвращаемого значения).
Можете ли вы назвать стандартный способ сделать это с помощью tolua ++? Покрывает ли это tolua ++, или я должен использовать Lua C Api?
Вы должны использовать CAPI, это похоже на следующее:
в луа:
function showValue(strFirstName, strLastName)
strName = strFirstName .. "." .. strLastName
print(strName)
return strName, "is", 18
end
в с ++:
lua_getglobal(L, "showValue");
lua_pushstring(L, "William");
lua_pushstring(L, "Hsueh");
lua_pcall(L, 2, 3, 0);
// get return values
int nOld = lua_tonumber(L, -1);
const char *pIs = lua_tostring(L, -2);
const char *pName = lua_tostring(L, -3);
Вы можете проверить весь пример по адресу: http://blog.deskangel.com/?p=459
пост ссылки на китайском языке, но код говорит все.
Других решений пока нет …