SDL 应用程序无法在其他计算机上运行

Posted

技术标签:

【中文标题】SDL 应用程序无法在其他计算机上运行【英文标题】:SDL apps don't run on other computers 【发布时间】:2012-09-30 06:45:27 【问题描述】:

我刚刚使用 SDL 1.2.15 和 SDL_image 1.2.12 库用 C++ 编写了一个应用程序。它可以在我的计算机上运行,​​但是每当我将 *.exe 发送给我的朋友(当然还有来自 SDL 库和程序所需图像的所有 *.dll 文件)时,他们都会说没有任何反应(没有消息、没有错误等)。程序的内容无关紧要,因为我编写的每个 SDL 应用程序都会产生这样的问题。

我正在 Windows XP 上开发 Code::Blocks 10.05(作为我的朋友)。显然我已经发送了发布版本。

我发现我的程序无法在与 Windows NT 及更低版本的兼容模式下运行。

【问题讨论】:

你在编译的时候有没有和你的exe在同一目录下的sdl dll文件? 不,它们与 cpp 文件在同一目录中。 它不是在所有朋友的 PC 上都可以使用,还是只在其中几台上工作? 我并没有在我所有朋友的电脑上都试过,但它并没有在我试过的所有电脑上工作。 你可能应该在本地虚拟机上安装一些“干净”的 Windows 安装,然后尝试解决它.. 【参考方案1】:

如果应用程序似乎没有启动,您可以使用DependencyWalker 检查是否所有静态依赖项都已满足。它会告诉你是否有任何丢失的 dll。如果所有依赖项似乎都已满足(dll 列表中没有错误),您可以使用主菜单中的Profile 命令来分析应用程序的启动。

如果动态依赖(通过 COM 加载的 dll 或对 LoadLibrary 的显式调用)存在任何问题,分析将显示您。

【讨论】:

【参考方案2】:

好的,我刚刚发现了我的错误。我确定了我的 SDL_Surface(使用 SDL_SetVideoMode())的宽度和高度以适合我的屏幕尺寸。当函数想要在屏幕上对其他维度执行相同操作时,它返回 NULL 从而使所有应用程序崩溃。 谢谢关心。

【讨论】:

以上是关于SDL 应用程序无法在其他计算机上运行的主要内容,如果未能解决你的问题,请参考以下文章

sdl 目标 c++ 和 xcode 在游戏中包含 sdl 框架

vb.net 应用程序不能在其他计算机上运行?

SDL/OpenGL 结果不一致?

PySide2和pyinstaller gui应用程序将无法在某些Windows计算机上运行

“无法加载文件或程序集”错误。可以在我的电脑上运行,但不能在其他电脑上运行

Windows、Mingw Qt 应用程序无法在已部署的计算机上运行