tolua++ Вызов функции Lua из кода C++

Я пытаюсь использовать библиотеку tolua ++ для встраивания Lua-скрипта в мое приложение на C++. Для меня понятно, как связывать классы C++ с Lua, создавать их из сценария Lua и вызывать методы. Однако я не могу понять, как вызывать функции скрипта Lua из C++ (с передачей аргументов и получением возвращаемого значения).

Можете ли вы назвать стандартный способ сделать это с помощью tolua++? Покрывает ли это tolua ++, или я должен использовать Lua C Api?

1 ответ

Вы должны использовать 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

пост ссылки на китайском языке, но код говорит все.

Другие вопросы по тегам