pygame والشد ctypes
سؤال
import mymodule, ctypes
#import pygame
foo = ctypes.cdll.MyDll.foo
print 'success'
واذا كنت غير تعليق على هذا import pygame
فشل مع WindowsError: [Errno 182] The operating system cannot load %1
. إطار المكدس في التعليمات البرمجية ctypes الثعبان، في محاولة لتحميل MyDll. رمز خطأ Win32 182 هو ERROR_INVALID_ORDINAL
. إذا استيراد pygame ليست هناك، والنصي يعمل بنجاح.
تحديث: إذا كنت تشغيله خارج المصحح، ويتم تعبئة٪ 1 مع "libpng13.dll"، والتي هي في دليل العمل والمشار إليه من قبل MyDll، وpygame بالتأكيد تحميل بعض نسخة من يببنغ. ليس لدي أي فكرة كيف سيكون حل هذه.
المحلول
وهذا يبدو وكأنه صراع دلل. ويبدو أن import pygame
يحمل بعض دلل غير متوافق مع ملف DLL الذي MyDll
الاحتياجات.
يجب أن تحاول تصحيح هذا مع sysinternals على ProcessExplorer، ويمكن ان تظهر التي دلس عملية قام بتحميل. بحث عن دلس مختلفة في كلتا الحالتين.
وأداة مفيدة أخرى لتصحيح المشاكل دلل هي dependencywalker، من www.dependencywalker.com
نصائح أخرى
وتحديث للسجل: اعتقد انه لم تكن هناك إصدارات متعددة من يببنغ يتم تحميلها من قبل وحدات مختلفة (pygame، وmydll). اعتدت متعدد المعالجة لفصل الوحدتين وكل شيء مدهش.