【发布时间】:2010-12-08 23:46:16
【问题描述】:
我正在使用 Swig 来包装一个如下所示的 C 接口:
int dosomething(char **str);
其中 str 是一个输出字符串。例如,在 C 中它是这样调用的:
char *str= NULL;
int val= dosomething(&str);
...
free(str);
在 Python 中,我希望能够这样称呼它:
val,str = dosomething()
但是,python 不断报告
TypeError: dosomething() takes exactly 1 arguments (0 given)
我尝试在类型映射中使用 OUTPUT,但无济于事。有什么想法吗?
【问题讨论】:
-
我可以建议你试试 ctypes 吗?以这种方式移植 C 函数要快得多
-
不幸的是,ctypes 仅适用于 python。我正在使用 swig,因为我需要为许多不同的语言(Java 等)进行包装。