小编dim*_*.sp的帖子

如何使用Cython将python函数作为参数传递给c++函数

这是我的设置:我有下一个要包装的 C++ 类:

// Foo.h
class Foo
{
public:
  typedef int MyType;
  typedef int ArgType1;
  typedef int ArgType2;
  ...
  typedef MyType (*FooFunction) (ArgType1 a, ArgType2 b);
  ...
  void setFooFunction(FooFunction f);
Run Code Online (Sandbox Code Playgroud)

在 C++ 中使用此类的示例:

#include "Foo.h"
...
int fooFun(int a, int b)
{
  if (a > b) return a;
  else return b;
}
...
int main(int argc, char **argv)
{
  ...
  fooObj->setFooFunction(&fooFun);
  ...
}  
Run Code Online (Sandbox Code Playgroud)

Cython 包装器:

 # .pyx
 cdef extern from "Foo.h":
   cdef cppclass Foo:
     void setFooFunction(int *) except +

 def …
Run Code Online (Sandbox Code Playgroud)

c++ python callback wrapper cython

6
推荐指数
1
解决办法
2064
查看次数

标签 统计

c++ ×1

callback ×1

cython ×1

python ×1

wrapper ×1