Allegro 5 - 宇宙保护者演示

Allegro 5 - Cosmic Protector Demo

我是 C++ 和 Allegro 5 的新手,但已经能够按照在线教程进行操作,并且能够成功构建和编译几个较小的项目。

但是,我无法将名为 Cosmic Protector 的演示项目添加到 运行,我想至少了解问题所在。

很遗憾,我不能给你太多继续下去的机会。

A window 短暂打开然后关闭,使控制台打开并显示消息.. 进程 6400 已退出,代码为 255

如果您在 VC 2017 年 运行ning 有这个演示,并且通过 Nuget 安装了最新版本的 Allegro 5 (5.2.4),我什至想知道。

此程序的源代码位于... https://github.com/liballeg/allegro5/tree/master/demos/cosmic_protector

谢谢你,杰克

Allegro 示例程序和演示通常是使用 CMake 与 Allegro 库一起构建的。我刚刚在 Windows 10 上用 VS2017 测试了 Allegro 5 的 CMake 构建,它成功构建了 Cosmic Protector 演示。您必须将 allegro dll 移动到与 exe 相同的目录中,但除此之外它运行完美。

至于为什么它对您不起作用,cosmic protector 取决于保存其资源的数据目录。可能是工作目录不对,导致找不到资源。数据目录需要与可执行文件一起复制。

您可以在“项目”->“属性”中的“调试”下将工作目录设置为 $(OutDir),然后它应该会在与 exe 相同的目录中找到任何数据。

你如何构建宇宙保护器?

多亏了 BugSquasher,我现在可以正常工作了。

方法如下...

  1. 开始 Visual Studio 2017
  2. 创建 Windows 控制台应用程序类型的新项目。
  3. 将项目命名为 CosmicProtector 并将其保存在我硬盘上的适当位置。
  4. 禁用预编译 headers 并删除任何 .h 和 .cpp 与有关预编译的新项目相关的文件 headers。 (例如 pch.h)
  5. 通过 Nuget 安装 Allegro 5.2.4。
  6. 在 Visual Studio 中,导航到项目 Settings/Properties 并确保所有 Allegro 插件已启用。
  7. 复制 Cosmic Protector SRC 和 Header 文件并将它们粘贴到我的
    项目目录.
  8. 下一步在 Visual Studio 项目中,添加源和 Header 文件
    分别。

相当愚蠢,我错过的步骤和你的回复引起我注意的是...

  1. 复制数据目录并将其粘贴到我的项目目录中 适用位置。
  2. 现在构建...

立即构建项目,除了 Game.cpp、GUI.cpp 和 Render.cpp

中报告的一些错误

Game.cpp 中的一个错误,这是... 的一个实例 error C4996 'snprintf': 此函数或变量可能不安全。考虑改用 snprintf_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS.

To address this I have changed the instance of snprintf to sprintf_s.

GUI.cpp 中的三个错误是... 错误 C4996 'strcpy':此函数或变量可能不安全。考虑改用 strcpy_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS.

To address all of these I changed each instance of strcpy to strcpy_s.

GUI.cpp 中有一个错误,这是... 的一个实例 error C4996 'snprintf': 此函数或变量可能不安全。考虑改用 snprintf_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS.

To address this I have changed the instance of snprintf to sprintf_s.

Render.cpp 中的一个错误,这是... 的一个实例 error C4996 'sprintf': 这个函数或变量可能不安全。考虑改用 sprintf_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS.

To address this I have changed the instance of sprintf to sprintf_s.

然后构建并运行:)

非常感谢您的回复,因为我已经开始做其他事情了,但我认为它非常有用,我认为能够构建和 运行 这个演示。 是你的回复让我又回来了,这一次,我成功了:)