LuaBind assert (id & lt; local_id_base)

Я боролся уже довольно давно.
Всякий раз, когда я пытаюсь определить класс в luabind, я получаю ошибку утверждения

assert( id < local_id_base ) in inheritance.hpp (luabind)

Я пробовал много разных вилок luabind без какого-либо успеха.
Хотя все они были скомпилированы с Boost 1.53 и Visual Studio 2012.
Также с Луа 5.2.1

Это код, который я использую, только для

extern "C"{
#include "lua.h"#include "lauxlib.h"#include "lualib.h"}

#include <luabind/luabind.hpp>
#include <luabind/class.hpp>
#include <luabind/function.hpp>
#include <luabind/object.hpp>class TestStruct
{
public:
TestStruct(const std::string& s): m_string(s) {}
void printmsg() { printf("Works"); };
private:
int i;
std::string m_string;
};int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR    lpCmdLine,
_In_ int       nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

lua_State* L = luaL_newstate();

luaopen_io (L);
luaopen_base(L);
luaopen_table(L);
luaopen_string(L);
luaopen_math(L);

using namespace luabind;

open(L);

module(L)
[
class_<TestStruct>("TestStruct")
.def(constructor<const std::string&>())
.def("printmsg", &TestStruct::printmsg)];lua_close(L);

return 0;
}
[Решено]

После прочтения я ничего не получил.
Так что я сделал, чтобы собрать LuaBind и Lua 5.2.2 в одном проекте, создав одну библиотеку вместо двух отдельных.

1

Решение

Ваш класс является локальным, поэтому не виден шаблонам LuaBind. Переместить класс из main(),

Если это не поможет, проверьте, правильно ли вы создали LuaBind — http://www.ogre3d.org/forums/viewtopic.php?f=2&т = 75829

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]