luabind::call_function как вернуть значение ?
От: Troglodit  
Дата: 07.10.08 15:31
Оценка:
Прикрутил к С++ 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
Re: luabind::call_function как вернуть значение ?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.10.08 11:24
Оценка:
Здравствуйте, Troglodit, Вы писали:

T>Прикрутил к С++ luabind.


ИМХО, без luabind код будет выглядеть попроще Может, нафиг его, используй стандартное lua API.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.