2014-01-28 31 views
1

我遇到了以下问题:我想在python中为低音库(http://www.un4seen.com/)创建绑定,并遇到以下问题: 该库允许为放置在内存中的文件创建流。但文档只是说它要求一个void *文件指针,没有关于包含的格式,什么都没有。我试过几件事情,打得四处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) 
然而

,无论我传进我的功能,它会导致一个Python的异常或低音返回错误,因为指定了非法参数类型。你可以在https://github.com/Timtam/Bass4Py 找到我的程序代码这就是我想要传递文件的地方。可能我想尽可能地简化它,给函数提供一个带有文件内容的字符串,并将这个字符串转换为我可以赋予低音的格式,以便它创建流。但现在我坚持从低音和我的指针问题的简单接受... 如果有人可以读入我的代码并解释要做什么,也许有人已经使用贝司,也许用python呢,这将是非常好的? 当然,我在这里搜索并尝试搜索模式,如“传递与ctypes字符串指针”等事情,并尝试了我发现的一切,但我实际上不知道什么低音想要从我... 先谢谢您。

回答

0

我没看过代码。但是,根据您所描述的内容,我建议您查看WinApi函数CreateFile,CreateFileMapping,OpenFile(依此类推)和PyWin32。它在Linux中完成的方式是identical

+0

问题是,我无法使用pywin32,因为低音API是跨平台的。这将是很高兴知道它可以在Windows,Linux和可能的Mac上完成的方式。 – user3246033