重写静态类函数的默认SWIG名称

Overriding default SWIG name for static class functions

本文关键字:默认 SWIG 名称 类函数 静态 静态类 重写      更新时间:2023-10-16

我有几个类正在使用swig来包装嵌入的Lua脚本。我们已经定义了函数调用的外观。

display.writeLine("Hello")

问题是SWIG似乎没有定义如何生成库名称的选项。c++类看起来是这样的。

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

我可以很容易地让SWIG包装这个函数,只是它总是这样显示Display_writeLine()

因此,我不需要仅仅使用我的自定义名称空间,而是需要进行

display.Display_writeLine()

这不是我想要的。我尝试过重命名规则,但似乎什么都不起作用。现在我有一个外部C函数,它调用我的静态函数,但这是一个我不需要的额外调用。看起来应该很简单。。。

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

display = {}
function display.writeline(str)
      display.Display_writeLine(str)
end