我刚刚阅读了“SWIG 和 Python”教程的以下部分: http ://www.swig.org/Doc1.1/HTML/Python.html#n11
我理解他们在示例中所做的事情,基本上你编写了一个调用 python 的 C 函数。但是,提供的示例在参数列表中只使用了一个 double,这使得为 python 构建参数列表变得相当简单。
我有一个具有以下签名的 C++ 回调:
Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*)
其中 Vector 和 Simulation 是我自己的类,而 void* 用于持有 PyObject 的 clientData(如示例中所用)
我知道 SWIG 包装了 Vector 和 Simulation 类,因为我可以在 python shell 中创建它们。唯一的问题是,我不知道如何将回调函数中的 Vector 参数转换为 python 参数列表的适当 PyObject。SWIG 在包装类本身时显然有一些方法可以做到这一点,但我不知道如何在函数中手动完成它。
非常感谢任何帮助!-追赶