سؤال

نظرا سلسلة:

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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top