Frage

import mymodule, ctypes
#import pygame

foo = ctypes.cdll.MyDll.foo

print 'success'

wenn ich die import pygame Kommentar- versagt diese mit WindowsError: [Errno 182] The operating system cannot load %1. der Stapelrahmen ist in ctypes Python-Code, versuchen MyDll zu laden. win32 Fehlercode 182 ist ERROR_INVALID_ORDINAL. wenn der pygame Import nicht da ist, wird das Skript erfolgreich ausgeführt wird.

Update: Wenn ich es außerhalb des Debugger ausführen, 1 das% mit ‚libpng13.dll‘ gefüllt ist, die im Arbeitsverzeichnis ist und durch MyDll Bezug genommen wird, und pygame ist sicherlich eine Version von libpng geladen. Ich habe keine Ahnung, wie ich dieses Problem zu beheben.

War es hilfreich?

Lösung

Das klingt wie ein DLL-Konflikt. Es scheint, dass import pygame einige DLL lädt, die nicht kompatibel mit einer DLL ist, die Bedürfnisse MyDll. Sie sollten versuchen, diese mit Process sysinternals zu debuggen, kann es zeigen, welche DLLs ein Prozess geladen ist; suchen für verschiedene DLLs in beiden Fällen.

Ein weiteres nützliches Tool zum Debuggen von dll Probleme ist die Dependency Walker, von www.dependencywalker.com

Andere Tipps

Update für das Protokoll: Ich glaube, es gibt mehrere Versionen von libpng waren durch verschiedene Module (pygame und mydll) geladen werden. Ich benutzte Multiprozessing die beiden Module und alles Dandy zu trennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top