pygame est merdait ctypes
Question
import mymodule, ctypes
#import pygame
foo = ctypes.cdll.MyDll.foo
print 'success'
si je décommenter le import pygame
cela échoue avec WindowsError: [Errno 182] The operating system cannot load %1
. le cadre de pile se trouve dans le code de python ctypes, la tentative de chargement MyDll. win32 code d'erreur 182 est ERROR_INVALID_ORDINAL
. si l'importation pygame est pas là, le script est exécuté avec succès.
Mise à jour: Si je le lance en dehors du débogueur,% 1 est rempli de « libpng13.dll », qui est dans le répertoire de travail et référencé par MyDll et pygame chargement certainement une version de libpng. Je ne sais pas comment je résoudre ce problème.
La solution
Cela ressemble à un conflit dll. Il semble que import pygame
charge une dll qui ne sont pas compatibles avec une dll qui MyDll
besoins.
Vous devriez essayer de déboguer cela avec Sysinternals ProcessExplorer, il peut montrer que DLLs un processus est chargé; chercher différentes dll dans les deux cas.
Un autre outil très pratique, à des problèmes de dll de débogage est le dependencywalker, de www.dependencywalker.com
Autres conseils
Mise à jour de l'enregistrement: Je crois qu'il y avait plusieurs versions de libpng étant chargés par différents modules (pygame et mydll). Je multitraitement pour séparer les deux modules et tout dandy de.