SDL2可执行文件在代码块外不工作 我最近开发了一个使用C++的SDL2游戏和最新版本的代码块。如果我在IDE中运行游戏,它运行得很好-问题是如果我尝试在代码块之外运行它,它将得到一个错误: The application was unable to start correctly(0xc000007b)

SDL2可执行文件在代码块外不工作 我最近开发了一个使用C++的SDL2游戏和最新版本的代码块。如果我在IDE中运行游戏,它运行得很好-问题是如果我尝试在代码块之外运行它,它将得到一个错误: The application was unable to start correctly(0xc000007b),c++,sdl-2,game-development,C++,Sdl 2,Game Development,我应该怎么做才能解决这个问题?您需要提供/安装应用程序使用的所有库。这包括SDL,但也包括编译器运行库 如果未包含应用程序链接所使用的所有库,则无法运行。 不,仅仅在本地与他们链接是不够的。您需要将它们发送到另一台需要运行该程序的计算机。您能说得更具体些吗?我使用LazyFoo的教程从代码块链接SDL2。如果我打算包装我的项目以便有人玩游戏,我是否应该在项目文件夹中添加更多文件,但.exe、.dll和媒体文件夹除外?@OnofreiTudor您需要将程序使用的所有.dll文件(非系统文件)放在与

我应该怎么做才能解决这个问题?

您需要提供/安装应用程序使用的所有库。这包括SDL,但也包括编译器运行库

如果未包含应用程序链接所使用的所有库,则无法运行。
不,仅仅在本地与他们链接是不够的。您需要将它们发送到另一台需要运行该程序的计算机。

您能说得更具体些吗?我使用LazyFoo的教程从代码块链接SDL2。如果我打算包装我的项目以便有人玩游戏,我是否应该在项目文件夹中添加更多文件,但.exe、.dll和媒体文件夹除外?@OnofreiTudor您需要将程序使用的所有
.dll
文件(非系统文件)放在与
.exe
相同的目录中。要检查是否获得了正确的DLL,可以打开终端(
cmd
),执行
set PATH=
,然后尝试运行该程序。它应该抱怨缺少DLL(然后从编译器
bin
目录复制它们)。当它停止抱怨,你就完了。要使其正常工作,请确保编译器bin目录中的DLL未复制到
C:\Windows
C:\Windows\System32
..\SysWow64
..\System
。它们不应该在那里。@HolyBlackCat我已经为项目本身和尝试包装游戏做了这些。@OnofreiTudor答案是一样的,你不知何故得到了错误的
SDL2.dll
。可能是64位的,而编译器是32位的,反之亦然。还请注意,仅提供
SDL2.dll
是不够的。您的程序还依赖于编译器
bin
目录中的一些DLL;它不抱怨它们的唯一原因是该目录位于
路径中。你的用户不会有这些DLL,所以你必须用EXE来传输它们中的一些。C++运行时也会有DLL。如果编译器不是来自Microsoft,不要期望DLL安装在PC上。即使使用Microsoft编译器,也可能希望在为应用程序创建的安装程序中打包可再发行的DLL。我使用NSIS,但还有其他几个安装程序可用。