我正在尝试使用 ctypes 调用 dll 函数并收到错误。我如何才能获得有关我的电话有什么问题的更多信息?
dll函数头:
DLL_API BOOL WINAPI DDSSetFrequency(int index, double frequency, int* wavePointNum, int* TNum);
python代码
from ctypes import *
hantek = cdll.LoadLibrary("E:\Programmer's Guide\DLL\DDS3X25Dll.dll")
print hantek.DDSSearch()
wavePointNum = c_int()
Tnum = c_int()
frequency = c_double(10000000.0)
index = c_int32(1)
hantek.DDSSetFrequency(index,frequency,byref(wavePointNum),byref(Tnum))
1
Traceback (most recent call last):
File "3x25.py", line 17, in <module>
hantek.DDSSetFrequency(index,frequency,byref(wavePointNum),byref(Tnum))
ValueError: Procedure called with not enough arguments (20 bytes missing) or wro
ng calling convention
最佳答案
您可能不会继续从事这个项目,但如果您正在从事这个项目(并且为了后代),我提供了一个 link to a python wrapper我为演示工作接口(interface)的 HT1025G 编写了代码。 set_frequency
方法有点挑剔,我发现(未记录的)set_divisor
方法运气更好。
关于python - 将 args 传递给 DLL 函数调用时没有足够的参数(缺少 20 个字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822387/