Прикрутил к С++ luabind.
Теперь вот мучусь с возвращением переменной из луа функции назад в С++
Передаю переменную в луа ф-ю, которая ее же и возвращает
Да вот конвертировать ее назад в строку не получается, выскакивает ексепшн
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_any_cast> > at memory location 0x0012fa1c..
Помогите разрулить плиз
С++
// Выполняем скрипт , который создает функцию
if(luaL_loadfile (L, "test.lua") || lua_pcall(L, 0, 0, 0)) {
std::string s=lua_tostring(L, -1);
lua_pop(L, 1);
MESSAGEBOX(s);
return 0;
}
...
int numParam=3;
boost::any strParam = std::string("qwerty");
// Вызываем ф-ю
boost::any anyResult=luabind::call_function<boost::any >(L, "test2",numParam,strParam);
std::string sdf= boost::any_cast<std::string> (anyResult); /// --------------- Здесь ексепшн
Lua
--test.lua
function test2(a,b)
return b; -- вернуть второй параметр (строковой)
end
Здравствуйте, Troglodit, Вы писали:
T>Прикрутил к С++ luabind.
ИМХО, без luabind код будет выглядеть попроще

Может, нафиг его, используй стандартное lua API.