2

次のように、ctypesを使用してCライブラリでラップされた関数があります

rrpLib.getParameterValueAsPointer.restype = c_void_p
def getParameterValueAsPointer(parHandle):  
   return rrpLib.getParameterValueAsPointer(parHandle)  

ここで、rrpLib は ctypes CDDLL オブジェクトです。特定の parHandle の場合、基になるオブジェクトは既知の double* です。

Python側で実際の倍数を取得するためにc_void_pオブジェクトをキャストするにはどうすればよいですか?

4

1 に答える 1

1

eryksun の提案のおかげで、これを理解しました。適切な方法はそうするようです

myVoidVal = getParameterValueAsPointer(aParaHandle)
mydblPtr = cast(myVoidVal, POINTER(c_double))
print myDblPtr[0]

正しい値を与えます。

于 2013-11-15T03:20:28.480 に答える