所有人
现在我使用python中ctypes的模型来引入一个.dll文件。在我的源代码中,我用c++编写了一个函数,如下所示
bool getFrameFromStream(char* streamName, const void* framebuffer, int frame_number, int overwriteMaxPixelVal=-1)
其中framebuffer是指向灵活类型的像素数据数组的指针,例如char、Uint16等ctypes.create_stream_缓冲区,即
framebuffer = ctypes.create_string_buffer(1000000)
ctypes.cast(framebuffer, ctypes.c_void_p)
我的问题是,这个用法是否保证缓冲区中的所有元素都可以是任何类型的?或者只是第一个元素是灵活的,而其他元素仍然应该是char?如果是这样,如果我想转移一个合适的变量,我应该怎么做。在
非常感谢
如果您有一个缓冲区并且想转换成不同的类型,您应该使用^{} 。例如,如果您有:
然后,如果在Python中的变量
^{pr2}$my_data
中有表示该堆栈的字符串,则可以使用以下调用将其解包:myvars将是从那里解包的数据的元组。在
检查一下我给你的link中的例子。在
相关问题 更多 >
编程相关推荐