0
我正在從需要文件指針(char * filename)的dll訪問一個函數。我如何通過python傳遞它?如何在python中使用ctypes在dll例程中傳遞文件指針
handle = cdll.dsp
p = open("signal.txt", "r")
handle.filter(p)
我正在從需要文件指針(char * filename)的dll訪問一個函數。我如何通過python傳遞它?如何在python中使用ctypes在dll例程中傳遞文件指針
handle = cdll.dsp
p = open("signal.txt", "r")
handle.filter(p)
文件指針是FILE *
。但是你提到你需要char *filename
,它是一個char指針(即一個以null結尾的字符串)。我將假設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,除非你有一個很好的理由留在舊版本。
「文件指針」是「FILE *」,而「char *」是一個字符串。 –
嗨,艾布拉姆斯, 所以根據你什麼是char * filename 的含義如果我錯了,請讓我知道 –
呃......它聽起來像一個字符串包含一個文件名給我...... –