Windows 10上缺少SDL.dll,即使它位于游戏文件夹

时间:2018-03-12 05:11:48

标签: windows sdl

多年来我在Windows上部署了许多游戏,并且总是在游戏的文件夹中随游戏一起发送必要的SDL.dll。

这一直很好,并且继续为99%以上的人工作。

但是,我开始看到一些用户报告“代码执行无法继续,因为找不到SDL.dll”。它们似乎都在Windows 10上。并且他们确认DLL确实在游戏文件夹中应该是,并且它们直接从文件夹内部运行游戏,而不是通过破坏工作目录的快捷方式

我也有其他没有此问题的Windows 10用户的报告。

我做了一些研究,发现这种错误可能会产生误导,如果DLL本身加载了另一个未找到的系统DLL,则可能会触发。

我在EXE上使用了DependencyWalker,发现SDL.dll取决于:

ADVAPI32.DLL

GDI32.DLL

KERNEL32.DLL

NTDL.DLL

MSVCRT.DLL

USER32.DLL

WINMM.DLL

那些看起来都很标准。出于某种原因,某些Windows 10安装会丢失它们吗?

其他想法是Windows 10正在转向已签名的DLL要求(只是猜测),或者Windows 10处理库加载路径的方式已经发生变化。

但同样,这适用于Windows 10上的其他人。

其他细节:DLL和EXE都是32位。有问题的系统很可能是64位。

1 个答案:

答案 0 :(得分:2)

在这种情况下,结果证明这是一个非常愚蠢的最终用户错误。

我在这里回答它,以防万一其他人遇到它。

当用户双击ZIP文件时,它就像他们打开了一个文件夹并正在查看文件一样。

他们甚至可以从这个ZIP浏览视图中运行游戏。

但当然,Windows无法找到ZIP文件中的DLL。

因此,Windows上的这种行为对最终用户来说非常混乱。解决方案是在运行游戏之前先提取ZIP。