如何在Python ctypes中将“文件”传递给需要“ Buffer”的cpp函数?

我想将'Open_Buffer_Continue'函数添加到MediaInfoDLL.py ctypes包装器中,这里的绑定和MediaInfoDLL.cs C#绑定已经实现了此功能,因此是可能的。


我如何通过以下内容:


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

到mediainfo cpp Open_Buffer_Continue,它期望:


(   const ZenLib::int8u *   Buffer,

    size_t                  Buffer_Size 


这是我到目前为止所拥有的:


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


qq_遁去的一_1
浏览 192回答 1
1回答

吃鸡游戏

我对此一无所知mediainfo,但看起来好像ZenLib::int8u*是一个指向字节的指针,所以最好使用的是:MediaInfo_Open_Buffer_Continue.argtype = [c_char_p, c_size_t]然后将文件读入字符串并将其传递:with open('./file.avi','rb') as f:    data = f.read()MediaInfo_Open_Buffer_Continue(data,len(data))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python