如何用lua脚本实现对c++函数的调用

How to excubate c++ function by lua script?

本文关键字:c++ 函数 调用 实现 何用 lua 脚本      更新时间:2023-10-16

我试图创建一个简单的引擎,但我不知道如何通过带参数的lua来替换c++函数。

c/c++

void draw(int TextureID, int x, int y){
     Image.Draw(TextureID,x,y,null); // some function to draw image
}

Lua脚本

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

有人能帮我吗?

您不能将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);