これまでのところ、Pythonで動作するDLLでないDLLが得られました。戻り値:私は間違っているので引数を渡すことができません。私は物事をどうやってやろうとしているのか。基本的に、私がテストしているDLLの関数名は "iptouint"です。これはc_char_pを受け取り、c_doubleを返します。ここで python ctypesがエラーをスローしていますか?
は私のコードです:nDll = ctypes.WinDLL('ndll.dll')
nDllProto = ctypes.WINFUNCTYPE(ctypes.c_double)
nDllInit = nDllProto(("dllInit", nDll))
nDllTestProto = ctypes.WINFUNCTYPE(ctypes.c_double,ctypes.c_char_p)
nDllTest = nDllTestProto(("iptouint",nDll),((1, "p1",0),(1, "p2",0)))
#This is the line that throws the error:
print("IP: %s" % nDllTest("12.345.67.890"))
'''
It gives me the error:
ValueError: paramflags must have the same length as argtypes
Im not sure what to do; Ive certainly played around with it to no avail.
Help is much appreciated.
Thanks.
'''
"ndll" dllの中で実際に呼び出す関数の名前とCドキュメントを記述してください。 – jsbueno
@jsbueno私が言ったように、関数の名前は "iptouint"で、doubleをとり、文字列を返します。 – pajm