Python C 扩展通过引用传递参数
我正在尝试为函数(libFunc)编写一个Python C包装器,其原型是
libFunc(char**, int*, char*, int)
How do I use PyArg_ParseTuple for setup the arguments for function call。这是我目前所拥有的
#include <Python.h>
PyObject* libFunc_py(PyObject* self, PyObject* args)
{
char* input;
char** output;
int inputlen;
int* outputlen;
PyArg_ParseTuple(args, "sisi" , output, outputlen, &input, &inputlen);
int ret = libFunc(output, outlen, input, inputlen);
return Py_BuildValue("i", ret);
}
,我可以使用 byref 对 ctypes 执行相同的操作。
I am trying to write a python C wrapper for a function (libFunc) whose prototype is
libFunc(char**, int*, char*, int)
How do I use PyArg_ParseTuple for setting up the arguments for function call. Here is what I currently have
#include <Python.h>
PyObject* libFunc_py(PyObject* self, PyObject* args)
{
char* input;
char** output;
int inputlen;
int* outputlen;
PyArg_ParseTuple(args, "sisi" , output, outputlen, &input, &inputlen);
int ret = libFunc(output, outlen, input, inputlen);
return Py_BuildValue("i", ret);
}
I am able to do the same with ctypes using byref.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最终这样做了
I ended up doing it this way