簡體   English   中英

在 Python 中從文件中讀取二進制數據並將其傳遞給 C++ 函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM