[英]Reading binary data from file in Python and passing it to a C++ function
如何將 Python 加載的二進制數據直接從文件傳遞到 C++ 函數,該函數采用 Cython 模塊中調用的數據指針和大小?
loadFromMemory(const void*, size_t)
這可能是它在純 Python 中的樣子:
with open('file.bin', 'rb') as f:
data = f.read()
loadFromMemory(data, len(data)) # How to do this in Cython?
您需要先將兩步轉換為char*
(Cython 可以輕松地從字符串中獲取),然后再將其重新解釋為void*
:
loadFromMemory(<void*>(<char*>data), len(data))
這確實假設loadFromMemory
不希望指針在函數調用后保持有效(Cython 不會自動為您管理內存,並且會在data
被破壞時釋放)。
(跳過轉換為char*
並直接轉換為void*
將獲取 Python 對象的地址,這不是您想要的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.