بايثون:تحويل سلاسل للاستخدام مع ctypes.c_void_p()
سؤال
نظرا سلسلة:
msg="hello world"
كيف يمكنني تحديد هذا ctypes.c_void_p()
نوع البيانات?
التعليمة البرمجية التالية ينتج "لا يمكن تحويلها إلى مؤشر" استثناء:
data=ctypes.c_void_p(msg)
data
هو مطلوب أن يكون void*
اكتب C, لأنه يتم تمرير إلى DLL.
أفترض هناك طريقة حزمة/فك السلسلة باستخدام struct
حزمة ، ولكن للأسف أنا مألوفة جدا مع هذه العملية.
المحلول
شيء مثل هذا ؟ باستخدام ctypes.cast
?
>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
لا تنتمي إلى StackOverflow