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 の継承を伝えるためにさまざまなアプローチを試みましたが、結果は得られませんでした。
私が得るクラッシュは、program.exe の 0x0059a064 での未処理の例外です: 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
どんな助けでも感謝します。