Pregunta

import mymodule, ctypes
#import pygame

foo = ctypes.cdll.MyDll.foo

print 'success'

si se me quite el comentario de la import pygame esta falla con WindowsError: [Errno 182] The operating system cannot load %1.el marco de pila es en ctypes el código de python, tratando de carga MyDll.código de error win32 182 es ERROR_INVALID_ORDINAL.si la pygame de importación no está allí, la secuencia de comandos se ejecuta con éxito.

Actualización:Si ejecuta fuera del depurador, el %1 está lleno de 'libpng13.dll', que está en el directorio de trabajo y se hace referencia a MyDll, y pygame es sin duda la carga de alguna versión de libpng.No tengo idea de cómo iba a resolver esto.

¿Fue útil?

Solución

Esto suena como un conflicto DLL. Parece que import pygame carga alguna DLL que no es compatible con un DLL que MyDll necesidades. Usted debe tratar de depurar este con sysinternals ProcessExplorer, puede mostrar qué DLL ha cargado un proceso; buscar diferentes dlls en ambos casos.

Otra herramienta útil para problemas de depuración DLL es la dependencywalker, desde www.dependencywalker.com

Otros consejos

Actualización para el registro:Creo que hubo varias versiones de libpng de ser cargado por diferentes módulos (pygame, y mydll).He utilizado el multiprocesamiento para separar los dos módulos y todo el dandy.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top