Pygame портит ctypes - PullRequest
       15

Pygame портит ctypes

1 голос
/ 26 марта 2009
import mymodule, ctypes
#import pygame

foo = ctypes.cdll.MyDll.foo

print 'success'

если я раскомментирую import pygame, это не удастся с WindowsError: [Errno 182] The operating system cannot load %1. кадр стека находится в коде Python ctypes, пытаясь загрузить MyDll. Win32 код ошибки 182 - ERROR_INVALID_ORDINAL. если импорт pygame отсутствует, скрипт выполняется успешно.

Обновление: если я запускаю его вне отладчика,% 1 заполняется файлом libpng13.dll, который находится в рабочем каталоге и на который ссылается MyDll, и pygame, безусловно, загружает некоторую версию libpng. Я понятия не имею, как бы я решил это.

Ответы [ 2 ]

2 голосов
/ 29 июля 2009

Обновление для записи: я полагаю, что было загружено несколько версий libpng разными модулями (pygame и mydll). Я использовал многопроцессорность, чтобы разделить два модуля и все остальное.

2 голосов
/ 26 марта 2009

Это звучит как конфликт длл. Кажется, что import pygame загружает какую-то dll, несовместимую с dll, которая нужна MyDll. Вы должны попытаться отладить это с помощью sysinternals ProcessExplorer, он может показать, какие библиотеки загружены процессом; Ищите разные DLL в обоих случаях.

Еще один полезный инструмент для отладки проблем с dll - это модуль dependencywalker с www.dependencywalker.com

...