【发布时间】:2014-02-18 09:24:50
【问题描述】:
(这是我昨天问的一个问题,但我简化了它)
我创建了一个类,我希望将其中的两个对象作为函数的输出参数(下面称为 Test)。但是当我运行 swig 命令 swig -c++ -python swigtest.i 时,我收到错误“警告 453:无法应用(MyClass &OUTPUT)。没有定义类型映射。”我尝试添加类型映射,但这无济于事。我也尝试过使用指针、指针指针和指针引用,也无济于事。
我觉得我忽略了一些简单的事情,因为这应该是很常见的事情。还是我需要编写一个复杂的类型图,就像我见过但不理解(还)?
下面是我的代码:
MyClass.h(简化以使其易于理解,因此仅切换到 int 没有帮助):
class MyClass
{
int x;
public:
int get() const
{
return x;
}
};
void Test(MyClass &obj1, MyClass &obj2);
swigtest.i:
%module swigtest
%include typemaps.i
%{
#define SWIG_FILE_WITH_INIT
%}
%{
#include "MyClass.h"
%}
%include "MyClass.h"
%apply (MyClass& OUTPUT) { MyClass &obj1 }
%apply (MyClass& OUTPUT) { MyClass &obj2 }
【问题讨论】:
-
您应该将您的答案放在单独的答案中,而不是在您的问题中。另外请注意,您可以使用“%ignore Test”,以便将 python 插入命名为“Test”。
-
对不起,我刚开始在 Stack Overflow 上发帖。我只是按照你的建议做了。
-
没问题,我们都在这里学习
标签: swig