Python 在ctypes中定义类型BT\u ADDR?

Python 在ctypes中定义类型BT\u ADDR?,python,ctypes,python-2.5,Python,Ctypes,Python 2.5,在尝试了一些简单的OS BT函数后,我怀疑我对BT\u ADDR的定义不正确。内容如下。我不熟悉ctypes,有人能给我一些提示吗?我的定义正确吗?我在python2.5上(是的,是的,硬件约束) 更新:我按照建议更新了代码,但在上述函数中仍然出现错误1168。我在下面的另一个函数上进行了尝试,效果很好 # int BthRemoteNameQuery( BT_ADDR* pba, unsigned int cBuffer, unsigned int* pcRequired, WCHAR

在尝试了一些简单的OS BT函数后,我怀疑我对
BT\u ADDR
的定义不正确。内容如下。我不熟悉ctypes,有人能给我一些提示吗?我的定义正确吗?我在python2.5上(是的,是的,硬件约束)

更新:我按照建议更新了代码,但在上述函数中仍然出现错误1168。我在下面的另一个函数上进行了尝试,效果很好

# int BthRemoteNameQuery(  BT_ADDR* pba,  unsigned int cBuffer,  unsigned int* pcRequired,  WCHAR* szString);
BthRemoteNameQuery = btdrt.BthRemoteNameQuery
BthRemoteNameQuery.argtypes = [ POINTER(w.BT_ADDR),  w.UINT , POINTER(w.UINT),  POINTER(w.WCHAR) ]
cBuffer = 256
pcRequired = pointer( c_uint() )
szString = ctypes.create_unicode_buffer( 256 )
rt = BthRemoteNameQuery( pba, cBuffer, pcRequired ,szString )
ec = GetLastError()
if rt != 0 :
    print( "Rt%s, Err%s" % (rt,ec)  )
else:
    print( 'returned length=', pcRequired.contents )
    print( 'string=', szString.value )
#>13
#>u'QR-386A-8B19'

BT_ADDR=ULONGLONG
。谢谢你的帮助。正是这个糟糕的功能不起作用。
# int BthRemoteNameQuery(  BT_ADDR* pba,  unsigned int cBuffer,  unsigned int* pcRequired,  WCHAR* szString);
BthRemoteNameQuery = btdrt.BthRemoteNameQuery
BthRemoteNameQuery.argtypes = [ POINTER(w.BT_ADDR),  w.UINT , POINTER(w.UINT),  POINTER(w.WCHAR) ]
cBuffer = 256
pcRequired = pointer( c_uint() )
szString = ctypes.create_unicode_buffer( 256 )
rt = BthRemoteNameQuery( pba, cBuffer, pcRequired ,szString )
ec = GetLastError()
if rt != 0 :
    print( "Rt%s, Err%s" % (rt,ec)  )
else:
    print( 'returned length=', pcRequired.contents )
    print( 'string=', szString.value )
#>13
#>u'QR-386A-8B19'