Python pygame正在搞砸ctypes

Python pygame正在搞砸ctypes,python,winapi,pygame,ctypes,Python,Winapi,Pygame,Ctypes,如果取消对导入pygame的注释,此操作将失败,出现窗口错误:[Errno 182]操作系统无法加载%1。堆栈框架在ctypes python代码中,试图加载MyDll。win32错误代码182是错误\无效\顺序。如果pygame导入不存在,则脚本将成功运行 更新:如果我在调试器之外运行它,则%1将填充“libpng13.dll”,它位于工作目录中,由MyDll引用,pygame肯定正在加载某些版本的libpng。我不知道如何解决这个问题。这听起来像是dll冲突。似乎import pygame加

如果取消对
导入pygame
的注释,此操作将失败,出现
窗口错误:[Errno 182]操作系统无法加载%1
。堆栈框架在ctypes python代码中,试图加载MyDll。win32错误代码182是
错误\无效\顺序
。如果pygame导入不存在,则脚本将成功运行


更新:如果我在调试器之外运行它,则%1将填充“libpng13.dll”,它位于工作目录中,由MyDll引用,pygame肯定正在加载某些版本的libpng。我不知道如何解决这个问题。

这听起来像是dll冲突。似乎
import pygame
加载了一些与
MyDll
需要的dll不兼容的dll。 您应该尝试使用sysinternals ProcessExplorer对此进行调试,它可以显示进程加载了哪些DLL;在这两种情况下寻找不同的DLL


另一个调试dll问题的有用工具是dependencywalker,这听起来像是dll冲突。似乎
import pygame
加载了一些与
MyDll
需要的dll不兼容的dll。 您应该尝试使用sysinternals ProcessExplorer对此进行调试,它可以显示进程加载了哪些DLL;在这两种情况下寻找不同的DLL


另一个用来调试dll问题的有用工具是dependencywalker,它来自更新记录:我相信不同的模块(pygame和mydll)加载了多个版本的libpng。我使用多处理来分离这两个模块,一切都很好。

更新记录:我相信不同的模块(pygame和mydll)加载了多个版本的libpng。我使用了多处理来分离这两个模块,一切都很顺利。

听起来很有希望,但我不确定我在ProcessExplorer中寻找的是什么。在ProcessExplorer中,您可以选择要检查的流程。然后点击“Ctrl+L”(查看->显示下方窗格)。配置下部窗格,使其显示具有“Ctrl+D”(视图->下部窗格视图->DLL)的DLL,并检查进程已加载的DLL。抱歉,我不清楚:我了解如何使用该工具,但不了解我使用它查找的内容。好的,我没有看到您编辑了您的问题。pygame加载的libpng版本是否与MyDll加载或需要的版本不同?如果先加载MyDll,然后导入pygame,会有什么不同吗?听起来很有希望,但我不确定在ProcessExplorer中要查找的是什么。在ProcessExplorer中,选择要检查的进程。然后点击“Ctrl+L”(查看->显示下方窗格)。配置下部窗格,使其显示具有“Ctrl+D”(视图->下部窗格视图->DLL)的DLL,并检查进程已加载的DLL。抱歉,我不清楚:我了解如何使用该工具,但不了解我使用它查找的内容。好的,我没有看到您编辑了您的问题。pygame加载的libpng版本是否与MyDll加载或需要的版本不同?如果先加载MyDll,然后导入pygame,会有什么不同吗?
import mymodule, ctypes
#import pygame

foo = ctypes.cdll.MyDll.foo

print 'success'