是否可以使用c++;luajit ffi的名称空间? 我有很多C++代码,其中包含许多函数和类在命名空间中(例如Boost)。 现在我尝试将LuaJiT2嵌入为脚本引擎,但我找不到任何关于调用函数和使用名称空间中其他内容的信息。 因此,是否可以将函数从C++命名空间传递到LuaJIT,使用FFI?< P>,您可以使用标准的LuaAPI来向Lua公开命名空间范围函数以及类静态函数。这与使用常规Lua解释器完全一样,因为LuaJIT与它兼容

是否可以使用c++;luajit ffi的名称空间? 我有很多C++代码,其中包含许多函数和类在命名空间中(例如Boost)。 现在我尝试将LuaJiT2嵌入为脚本引擎,但我找不到任何关于调用函数和使用名称空间中其他内容的信息。 因此,是否可以将函数从C++命名空间传递到LuaJIT,使用FFI?< P>,您可以使用标准的LuaAPI来向Lua公开命名空间范围函数以及类静态函数。这与使用常规Lua解释器完全一样,因为LuaJIT与它兼容,c++,lua,luajit,C++,Lua,Luajit,但不能使用FFI,因为FFI是基于头文件的C解析的。你使用C++语法。外国金融机构不是使用LuaJIT的唯一方式;这只是一个基于C的 任何使用Lua(Luabind,Sigg等)的C++特定绑定API都应该与LuaJIT一样好。 < P>可以使用不同于C的名称命名,原因是它不“普通”是因为C++名称的篡改是非常编译器/平台特定的: 因此,这种声明是有效的: ffi.cdef[[ void Test1_Method1(void) asm("_ZN5Test17Method1Ev"); ]] 然

但不能使用FFI,因为FFI是基于头文件的C解析的。你使用C++语法。外国金融机构不是使用LuaJIT的唯一方式;这只是一个基于C的


<>任何使用Lua(Luabind,Sigg等)的C++特定绑定API都应该与LuaJIT一样好。

< P>可以使用不同于C的名称命名,原因是它不“普通”是因为C++名称的篡改是非常编译器/平台特定的:

因此,这种声明是有效的:

ffi.cdef[[
void Test1_Method1(void) asm("_ZN5Test17Method1Ev");
]]
然后可以调用Test1\u Method1。
Mike Pall在luajit身上做得非常出色。有这么多很棒的功能。

我想您需要通过extern“C”将它们导出为C风格的装饰,但我怀疑您是否能够获得类似类方法/模板或非导出的命名空间函数的任何内容向Lua提供增强可能也不是一个好主意。您最好根据实际用例公开有限的函数API。谢谢,@jsimmons,但boost就是一个例子,“基于实际用例的有限函数API”比boost函数库大得多。