Python ctypes 传递void**,请问该如何声明及传递

我想调用一个dll中的函数,dll成功载入,但是调用函数传递参数过程中遇到一些问题

这个是C函数:

#define CV_DETECT_ENABLE_ALIGN_106 0x0000020

typedef void *cv_handle_t;

CV_SDK_API 
cv_result_t
cv_face_create_detector(
    cv_handle_t *handle,
    const char *modle_path,
    unsigned int config
);

在python中我这样调用:

CV_DETECT_ENABLE_ALIGN_106 = 0x00000020

cv_face_create_detector = dll.cv_face_create_detector
cv_face_create_detector.restype = c_int
cv_face_create_detector.argtypes = (POINTER(c_void_p), c_char_p, c_uint)

a = c_void_p(0)
handle_detect = byref(a)

result = cv_face_create_detector(handle_detect, None, CV_DETECT_ENABLE_ALIGN_106)
print(result)

错误提示:

result = cv_face_create_detector(handle_detect, None, CV_DETECT_ENABLE_ALIGN_106)

OSError: [WinError -529697949] Windows Error 0xe06d7363

请问是哪个参数传递或者声明错了,导致函数调用失败了呢,先谢谢了

阅读 5.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题