3

ctypes を使用して dll 関数を呼び出そうとすると、エラーが発生します。通話の問題点に関する詳細情報を取得するにはどうすればよいですか?

dll 関数ヘッダー:

DLL_API BOOL WINAPI DDSSetFrequency(int index, double frequency, int* wavePointNum, int* TNum); 

パイソンコード

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
4

1 に答える 1

0

あなたはまだこのプロジェクトに取り組んでいないかもしれませんが、そうである場合に備えて (そして後世のために)、動作するインターフェイスを示す HT1025G 用に作成した Python ラッパーへのリンクを提供します。このset_frequency方法は少し厄介ですが、(文書化されていない)set_divisor方法の方がうまくいくことがわかりました。

于 2015-04-26T18:29:30.597 に答える