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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top