pygame的是搞砸了ctypes的
题
import mymodule, ctypes
#import pygame
foo = ctypes.cdll.MyDll.foo
print 'success'
如果我取消注释import pygame
这个失败,WindowsError: [Errno 182] The operating system cannot load %1
。堆栈帧是在ctypes的Python代码,试图加载MYDLL。 Win32错误代码182是ERROR_INVALID_ORDINAL
。如果pygame的进口是不存在,脚本成功运行。
更新:如果我运行在调试器外部的%1充满了“libpng13.dll”,这是在工作目录,并通过MYDLL参考,并pygame的肯定是装的libpng一些版本。我不知道我会怎么解决这个问题。
解决方案
这听起来像一个DLL冲突。看来,import pygame
加载DLL的一些,是不是与MyDll
需要一个dll兼容。
你应该尝试的Sysinternals ProcessExplorer调试此,它可以显示哪些DLL进程已加载;寻找在这两种情况下不同的DLL。
另一个有用的工具来调试DLL问题是dependencywalker,从 www.dependencywalker.com
其他提示
更新备案:我相信有由不同的模块(pygame的,和MYDLL)被加载的libpng的多个版本。我用多至两个分离的模块,一切都饰面。
不隶属于 StackOverflow