c++ - 覆盖静态类函数的默认 SWIG 名称

标签 c++ lua swig

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

display.writeLine("Hello")

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

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

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

因此,我必须这样做,而不是仅仅使用我的自定义命名空间

display.Display_writeLine()

这不是我想要的。我尝试过尝试重命名规则,但似乎没有任何效果。现在我有一个 extern C 函数,然后调用我的静态函数,但这是我不需要的额外调用。看起来应该很简单......

最佳答案

您可以轻松地为您的函数创建一个快捷方式,该函数执行相同的函数代码并在启动时加载文件:

display = {}

function display.writeline(str)
      display.Display_writeLine(str)
end

关于c++ - 覆盖静态类函数的默认 SWIG 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300339/

相关文章:

algorithm - 函数按预期执行,但在循环结束时返回 nil 值

c - 第一个示例由于编译器错误而无法编译

python - 如何将 3d 和 4d numpy.array 传递给 swig

c++ - 如何将 DOMDocument 从 VBA 传递到 C++ dll

c++ - 越界操作数组,似乎无法理解其含义

c++ - 如何以编程方式在 Linux 中获取窗口和系统的分辨率?

date - lua 程序显示当前时间

c++ - 使用 pthread_win32 增加进程优先级

python - 如何使用 torch 从 caffe 模型中获取图层

c# - 包装包含 vector 的模板类时如何让 SWIG 应用模板?