python ctypesキャストはnull文字列を取得します
b
住所です
が一般的な文字の場合b_v.value
、これは正常です。しかし、b
の内容が "1122001314" のような 16 進数の場合、16 進数の "00" が含まれている限り、結果は 1122 になり、001314 は失われるはずです
今、すべてのコンテンツ「1122001314」を取得したい。方法を教えてください よろしくお願いします。
コードは次のとおりです。
b_v=ctypes.cast(b,ctypes.POINTER(ctypes.c_char_p))
print binascii.b2a_hex(b_v.value)
例:
import ctypes
import binascii
va=binascii.a2b_hex('1212273031003535')
tt=ctypes.create_string_buffer(va)
b=ctypes.addressof(tt)
b_v=ctypes.cast(b,ctypes.c_char_p)
print binascii.b2a_hex(b_v.value)
結果は次のとおりです。"1212273031"
結果が欲しい"1212273031003535"