我正在从dll访问一个需要文件指针(char * filename)的函数。我怎么能通过python传递它?
handle = cdll.dsp
p = open("signal.txt", "r")
handle.filter(p)
答案 0 :(得分:0)
文件指针为FILE *
。但是你提到你需要char *filename
,它是一个char指针(即以空字符结尾的字符串)。我假设C函数有一个原型void filter(char *filename)
。
首先,您必须define the function argument types and the return type:
import ctypes
filter = ctypes.cdll.dsp.filter
filter.argtypes = (ctypes.c_char_p,)
filter.restype = None # Or whatever type it returns.
然后你称之为:
filter("signal.txt")
顺便说一句,你把你的问题标记为Python 2.7,但现在你应该继续使用Python 3,除非你有充分的理由留在旧版本。