Я экспериментирую с интеграцией LUA в мою программу с luabind
, но я ударил большой камень преткновения.C++ 11 интеграция luabind, сбой функции
Я очень незнакомый с соглашениями LUA, и я чувствую, что мне не хватает чего-то простого.
Вот мой C++ код:
struct app_t
{
//...
void exit();
void reset();
resource_mgr_t resources;
//...
};
struct resource_mgr_t
{
//...
void prune();
void purge();
//...
};
extern app_t app;
И мои luabind
модули:
luabind::module(state)
[
luabind::class_<resource_mgr_t>("resource_mgr")
.def("prune", &resource_mgr_t::prune)
.def("purge", &resource_mgr_t::purge)
];
luabind::module(state)
[
luabind::class_<app_t>("app")
.def("exit", &app_t::exit)
.def("reset", &app_t::reset)
.def_readonly("resources", &app_t::resources)
];
luabind::globals(state)["app"] = &app;
можно выполнить следующие Lua команды просто отлично:
app:exit()
app:reset()
Однако следующее не удалось выполнить:
app.resources:purge()
со следующей ошибкой:
[string "app.resources:purge()"]:1: attempt to index field 'resources' (a function value)
Любая помощь очень ценится!
'приложения: ресурсы(): продувочные()' Теперь дает ошибки времени выполнения 'Luabind: функция property_tag не может быть called'. –
Попробуйте 'app.resources(): purge()'. (Я не могу проверить прямо сейчас.) –
Я получаю ту же ошибку :(Очевидно, мне, возможно, потребуется перестроить библиотеки luabind. (Http://www.gamedev.net/topic/593408-def-readwrite-dosent-work /) Я столкнулся с такими странными ошибками, как простое включение '', заставляющее программу не компилироваться. –