سؤال

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). اعتدت متعدد المعالجة لفصل الوحدتين وكل شيء مدهش.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top