Tôi đang cố gắng viết trình bao bọc cho một thư viện gốc trong Linux. Vấn đề là thế này:python ctypes gửi con trỏ tới cấu trúc làm tham số cho thư viện gốc
định nghĩa trong c:
int mymethod(mystruct* ptr)
trong python:
_lib.mymethod.argtypes = (ctypes.POINTER(mystruct),)
_lib.mymethod.restype = ctypes.c_int
s = mystruct()
_lib.mymethod(ctypes.byref(s))
tăng lương : Dự kiến LP_mystruct dụ thay vì con trỏ đến mystruct
_lib.mymethod(ctypes.pointer(s))
tăng dự kiến dụ LP_mystruct thay vì LP_mystruct
lỗi. Làm thế nào để vượt qua một cấu trúc như một con trỏ đến một phương pháp bản địa?
Cảm ơn.
Mete
Cảm ơn! Tôi đã sử dụng phương pháp thứ hai mà bạn đã nói và nó hoạt động mà không có vấn đề gì. – mete
một cái gì đó tương tự ở đây - https://codexample.org/questions/238108/python-ctypes-sending-pointer-to-structure-as-parameter-to-native-library.c –
Đó là loại POINTER cấp cao hơn trong ctypes ? –