如何通过Lua脚本执行C++函数?

我正在尝试创建一个简单的引擎,但不知道如何使用 Lua 带参数执行 C++ 函数,例如:

C/C++

void draw(int TextureID, int x, int y){
     Image.Draw(TextureID,x,y,null); // 一些绘制图像的函数
}

Lua 脚本

function main()
   draw(1,1,1)
end

有人可以帮助我吗?

点赞
用户107090
用户107090

你不能直接将 C++ 函数导出到 Lua,你需要使用 Lua-C 协议将它进行包装,并将包装器导出到 Lua。

static int L_draw(lua_State *L)
{
    int id = luaL_checkint(L,1);
    int  x = luaL_checkint(L,2);
    int  y = luaL_checkint(L,3);
    Image.Draw(id,x,y,null);
    return 0;
}
...
lua_register(L,"draw",L_draw);
2014-10-20 11:56:22