lua調用c++函數,c++調用lua

static int getNum(int num);

static int _getNum(lua_State* pL);



bool luaDoc::init()

{

      lua_State*pL=lua_open();

      luaopen_base(pL);

    lua_register(pL,"_getNum",_getNum);

      luaL_difile(pL,"data.lua");

      lua_close(pL);

      return true;

}



int  luaDoc::getNum(int num)

{

     return num+1;

}



int luaDoc::_getNum(lua_State*pL)

{

    int num=(int )lua_tonumber(pL,1);

    lua_pushnumber(pL,getNum(num));

    return1;

}





//=========lua文件===========

local num=_getNum(10)

 

 

 

 

//c++調用lua函數

lua_State*pL=lua_open();

luaopen_base(pL);

luaL_dofile(pL,"L.lua");
lua_settop(pL,0);
lua_getglobal(pL,"add");
lua_pushnumber(pL,10);
lua_pushnumber(pL,10);
lua_call(pL,2,1);    //2個參數,一個返回值
//lua_gettable(pL,-2);
int numAdd=lua_tonumber(pL,-1);


 

 


 

發佈了50 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章