如何将“file”传递给Python ctypes中预期为“Buffer”的cpp函数?

2024-10-02 22:32:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在媒体信息DLL.pyctypes包装器,绑定是here和 媒体信息DLL.csC#绑定已经实现了这个函数,所以这是可能的。在

如何通过以下各项:

file = open('./file.avi', 'rb')

到mediainfo cpp Open_Buffer_Continue,它需要:

^{pr2}$

是吗?在

到目前为止,我得到的是:

MediaInfo_Open_Buffer_Init = MediaInfoDLL_Handler.MediaInfo_Open_Buffer_Init
MediaInfo_Open_Buffer_Init.argtype = [c_size_t, c_size_t]
MediaInfo_Open_Buffer_Init.restype = None

MediaInfo_Open_Buffer_Continue = MediaInfoDLL_Handler.MediaInfo_Open_Buffer_Continue
MediaInfo_Open_Buffer_Continue.argtype = [c_size_t, c_size_t]  # NOT SURE HERE var 1
MediaInfo_Open_Buffer_Continue.restype = c_size_t

MediaInfo_Open_Buffer_Finalize = MediaInfoDLL_Handler.MediaInfo_Open_Buffer_Finalize
MediaInfo_Open_Buffer_Finalize.argtype = [c_void_p]
MediaInfo_Open_Buffer_Finalize.restype = None

Tags: 信息sizeinitbufferopen媒体filehandler
1条回答
网友
1楼 · 发布于 2024-10-02 22:32:10

我对mediainfo一无所知,但看起来ZenLib::int8u*是一个指向字节的指针,因此最好使用:

MediaInfo_Open_Buffer_Continue.argtype = [c_char_p, c_size_t]

然后将文件读入字符串并传递:

^{pr2}$

相关问题 更多 >