覆盖默认的 SWIG 名称以用于静态类函数。

我有几个类,我正在使用 swig 包装为嵌入式 Lua 脚本。我们已经定义了想要的函数调用样式。

display.writeLine("Hello")

问题是,SWIG 似乎没有选项来定义它生成库名称的方式。C++ 类如下所示。

class Display
{
public:
    static void writeLine(char *);
}

我可以轻松地让 SWIG 包装这个函数,只是它总是显示为 Display_writeLine()

所以,我不得不使用自定义的命名空间,我要做的就是

display.Display_writeLine()

这不是我想要的。我已经尝试过实验性的重命名规则,但没有任何效果。现在我有一个 extern C 函数,然后调用我的静态函数,但这是我不需要的额外调用。应该是很简单的事情...

点赞
用户2679394
用户2679394

你可以很容易地为你的函数创建一个快捷方式,在启动时加载该函数代码的文件:

display = {}

function display.writeline(str)
      display.Display_writeLine(str)
end
2013-08-18 18:38:33