Есть ли способ вернуть в функции C ++ указатель на класс в lua? Я пробовал это, среди других более отчаянных вещей:
P* GetP()
{
return g_P;
}
module(L)
[
def("GetP", &GetP)
]
Это приводит к сбою программы даже до запуска первой строки в main (), даже если код просто находится в функции, которая никогда не вызывается.
Я думал, что проблема в том, что P неизвестен luabind, но даже сказать ему, что это было не удалось.
module(L)
[
class_<P>("ClassP")
.def(constructor<>())
]
Это может быть связано с тем, что у P довольно сложная иерархия наследования, не уверен.
class GO;
class L;
class C : public GO;
class P : public C, L;
Я пробовал разные подходы, чтобы сообщить luabind о наследовании P, ни один из них не дал никакого результата.
Сбой, который я получаю, представляет собой необработанное исключение по адресу 0x0059a064 в program.exe: 0xC0000005: место чтения нарушения прав доступа 0x00000004, обнаруженное в xtree.
_Pairib insert(const value_type& _Val)
{ // try to insert node with value _Val
_Nodeptr _Trynode = _Root();
_Nodeptr _Wherenode = _Myhead;
bool _Addleft = true; // add to left of head if tree empty
Любая помощь приветствуется.