gpt4 book ai didi

c++ - 将 LuaBridge 与指向内置类型的指针一起使用

转载 作者:行者123 更新时间:2023-11-28 03:25:18 25 4
gpt4 key购买 nike

让我们考虑以下 C 函数:

void returnMultipleValuesByPointer(int* ret0, int* ret1, int* ret2)
{
*ret0 = 0;
*ret1 = 1;
*ret2 = 2;
}

如何使用 LuaBridge 在 Lua 中公开它?所有文档和示例都说明了指向对象是类的复杂情况,但我找不到如何处理这种简单情况...

简单的方法(即 luabridge::getGlobalNamespace(L).addFunction("test", &returnMultipleValuesByPointer)) 编译但不理解值是通过地址传递的。

最佳答案

您不能直接这样做。您必须编写一个包装器方法,将参数转换为返回值。这就需要写这样一个方法。例如,如果这些是返回值(即:它们不带参数):

int lua_ReturnMultipleValuesByPointer(lua_State *L)
{
int ret0;
int ret1;
int ret2;
returnMultipleValuesByPointer(&ret0, &ret1, &ret2);
lua_pushinteger(L, ret0);
lua_pushinteger(L, ret1);
lua_pushinteger(L, ret2);
return 3;
}

您需要使用“addCFunction”注册它,因为它是一个标准的 Lua 函数。

关于c++ - 将 LuaBridge 与指向内置类型的指针一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com