繁体   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