سؤال

وأنا أحاول حاليا للقيام ببعض التأمل على DLL مع الثعبان. أريد إنشاء تلقائيا واجهة رسومية اختبار على أساس DLL.

ويمكنني تحميل DLL بلدي في بيثون بسهولة تامة وأدعو بعض الوظائف. والمشكلة الرئيسية هي إذا أسميه "دير" على الكائن دون استدعاء أي وسيلة، لقد حصلت في نتيجة

>>> dir(myLib)
['_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

وعندما أدعو يدويا وظيفة (مثل "Read_Version") لدي نتيجة لالدالة dir

>>> dir(myLib)
['Read_Version', '_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

ويبدو أن العمل التأمل فقط على وظيفة لقد دعوت بالفعل، وهذا ليس حقا "مفيدة"..)

هل لديك فكرة أخرى لجلب الوظائف التي هي في DLL؟ (في بيثون طبعا)

وأنا باستخدام بيثون 2.6 ويندوز.

هل كانت مفيدة؟

المحلول

وبقدر ما أعرف، لا توجد وسيلة سهلة للقيام بذلك. لديك لاستخدام بعض الأدوات خارجية (على سبيل المثال link /dump /exports) أو استخدام محلل PE / DLL (على سبيل المثال pefile ).

scroll top