【发布时间】:2014-04-29 00:27:33
【问题描述】:
我有以下 C 函数,我正在尝试 SWIG-ify:
void GetAttOrder(int node, DCE_ORDER order, float att[3]);
我想在 Python 中调用并通过以下方式访问:
node = 0; order = DCD_TYPR;
attitude = GetAttOrder(node, order);
attitude[0] // 45.232
我之前将 DCE_ORDER 类型实现为
typedef enum
{
DCD_TPYR = 0,
DCD_TYPR,
DCD_TYRP,
...
DCD_PRYT
} DCE_ORDER;
我在SWIG documentation 中找到了一些关于类似问题的文档,但我没有任何运气来实施解决方案。我还研究了其他一些 stackoverflow 问题(this one 似乎很接近),也无济于事。我怀疑我应该在这里使用 typemap,但在 SWIG 方面我还年轻又愚蠢。
有什么建议或指点吗?
非常感谢。
【问题讨论】:
-
您是否尝试过创建一个调用您的
GetAttOrder的重载float* GetAttOrder(int node, DCE_ORDER order)?我相信 SWIG 知道如何将指针返回视为 Python 列表。 -
不,我没有尝试过,但我确实得到了一些工作。我会继续自己回答。