我刚刚使用SDL 1.2.15和SDL_image 1.2.12库在C ++中编写了一个应用程序。它可以在我的计算机上运行,但每当我向我的朋友发送* .exe(当然包含来自SDL库的所有* .dll文件和程序需要的图像)时,他们会说没有任何反应(没有消息,没有错误等)。程序的内容无关紧要,因为我编写的每个SDL应用程序都会产生这样的问题。
我正在使用Windows XP上的Code :: Blocks 10.05(作为我的朋友)。显然我发送了发布版本。
我发现我的程序无法在Windows NT及更低版本的兼容模式下运行。
答案 0 :(得分:2)
如果应用程序似乎甚至没有启动,您可以使用DependencyWalker来检查是否满足所有静态依赖项。它会告诉你是否有任何丢失的dll。如果所有依赖项似乎都已满足(dll列表中没有错误),则可以使用主菜单中的Profile
命令来分析应用程序的启动。
分析将显示动态依赖项是否存在任何问题(通过COM加载dll或显式调用LoadLibrary
)。
答案 1 :(得分:0)
好的,我刚刚发现了我的错误。我确定了SDL_Surface的宽度和高度(使用SDL_SetVideoMode())以适合我的屏幕尺寸。当函数想要在屏幕上以其他维度执行相同操作时,它返回NULL,从而导致所有应用程序崩溃。 谢谢你的关注。