【发布时间】:2014-02-20 07:52:39
【问题描述】:
我遇到了以下问题:我想在 python 中为低音库 (http://www.un4seen.com/) 创建绑定并遇到以下问题: 该库允许为位于内存中的文件创建流。但是文档只是说它请求一个 void *file 指针,没有关于包含格式的内容,什么都没有。我尝试了几件事,玩弄了 ctypes,尝试了以下(在 Windows 7 x64 机器上使用 python 2.7):
import ctypes
data=open('my filename.wav').read()
pointer=ctypes.POINTER(data)
cdata=ctypes.c_char_p(data)
cpointer=ctypes.byref(cdata)
但是,无论我传递给我的函数,它都会导致 pythonic 异常或 bass 因为指定了非法参数类型而返回错误。你可以在https://github.com/Timtam/Bass4Py找到我的程序代码 那就是我想将文件传递到的地方。可能我想让它尽可能简单,将带有文件内容的字符串提供给函数,并将该字符串转换为我可以提供给 bass 的格式,以便创建流。但现在我坚持接受贝斯的简单接受和我的指针问题...... 如果有人可以阅读我的代码并解释该怎么做,那将是非常好的,也许有人已经使用过 bass,也许也使用过 python? 当然我在这里搜索并尝试了诸如“使用ctypes传递字符串指针”之类的搜索模式并尝试了我找到的所有内容,但我实际上不知道bass想要我什么...... 提前谢谢你。
【问题讨论】:
标签: python c string pointers python-2.7