如何使用SWIG包装带有可变参数的C函数

我正在尝试使用SWIG包装带有可变参数的C函数,其代码如下。

void post(const char *fmt, ...)
{
    char buf[MAXPDSTRING];
    va_list ap;
    t_int arg[8];
    int i;
    va_start(ap, fmt);
    vsnprintf(buf, MAXPDSTRING-1, fmt, ap);
    va_end(ap);
    strcat(buf, "\n");

    dopost(buf);
}

但是当我在Lua中运行该函数时,只有使用一个参数时才能正常工作。 我无法以以下方式编写代码。

pd.post("NUM : %d", 123);

并且我得到以下错误。

Error in post expected 1..1 args, got 2

是否可能使用SWIG包装带有可变参数的C函数?

我将不胜感激地接受任何帮助。谢谢!

点赞