0

ここに C++ コード、コンソール プロジェクト

class CControl  //: public CGameObject
{
public:
    CControl(){}
    ~CControl(){}

public:
    void AddAnimation(){ cout << "CControl::AddAnimation" << endl;}
};

int  _tmain()
{
    lua_State* L = lua_open();      
    luaL_openlibs(L);               
    open(L);                        

    module(L)
    [
        class_<CControl>("CControl")
            .def(constructor<>())
            .def("AddAnimation",&CControl::AddAnimation)
    ];

    int result = luaL_dofile(L,"scripts/test.lua");
    cout << result << endl;
    return 0;
}

ここでluabindを使用したluaコード

class 'Button' (Control)
function Button:__init()
    Control:__init()
end

function Button:Create()
    self:AddAnimation()    --call, fail 
end

d = Button()
d:Create()

Q:

Button:Create で継承された関数 self:AddAnimation() を呼び出したとき。うわー!「CControl::AddAnimation」は出力されません! どうしたの?私はそれを2時間チェックしました。イライラします!どんな助けでも本当に感謝します

ここに画像の説明を入力

4

1 に答える 1

0

わかった!!Controlコンストラクターを正常に呼び出すには、次のようなコードを記述する必要があります" Control.(self)"。ちなみに、memeber関数を呼び出したいときは、「self:AddAnimation」と書く必要があります。

于 2012-07-16T15:26:50.027 に答える