Boc*_*com 1 python ctypes function-pointers
这与我的另一个问题有关,但我觉得我应该在一个新问题中提出这个问题.
基本上FLAC使用函数指针进行回调,并使用ctypes实现回调,您可以使用CFUNCTYPE它们进行原型化,然后使用该prototype()函数创建它们.
我遇到的问题是我想我会创建我的回调函数(我没有显示我重新创建的结构,FLAC__Frame是一个结构):
write_callback_prototype = CFUNCTYPE(c_int, c_void_p,
POINTER(FLAC__Frame),
POINTER(c_int32), v_void_p)Run Code Online (Sandbox Code Playgroud)
我遇到的问题是实施.FLAC__Frame永远不会被程序员实例化,只能从初始化函数和处理函数中调用.我必须自己编写回调函数,但问题是我不知道怎么做,所以如果有人知道我应该怎么做,然后一些帮助将不胜感激.
根据ctypes回调文档,您可以定义python函数
def my_callback(a, p, frame, p1, p2)
pass
Run Code Online (Sandbox Code Playgroud)
然后创建一个指向C可调用函数的指针,如下所示:
callback = write_callback_prototype(my_callback)
Run Code Online (Sandbox Code Playgroud)
然后可以将此函数指针传递给FLAC