我一直在关注一些关于 c++ 游戏编程的教程。我是 C++ 的新手,我正在使用 Microsoft Visual C++ 2010 Express IDE。我正在创建一个游戏,当我通过 IDE 运行程序时,它会按预期显示草精灵。但是当我从 Release 文件夹运行 .exe 文件时,它会显示奇怪的图像。当我从调试文件夹运行 .exe 文件时,我得到一个灰屏。谁能告诉我为什么会这样?


我一直在关注一些关于 c++ 游戏编程的教程。我是 C++ 的新手,我正在使用 Microsoft Visual C++ 2010 Express IDE。我正在创建一个游戏,当我通过 IDE 运行程序时,它会按预期显示草精灵。但是当我从 Release 文件夹运行 .exe 文件时,它会显示奇怪的图像。当我从调试文件夹运行 .exe 文件时,我得到一个灰屏。谁能告诉我为什么会这样?


我冒险猜测您的精灵图像作为数据文件保存在您的项目文件夹中。因此,我提供以下前提:
Visual Studio IDE 的默认运行位置是您正在执行的项目的项目文件夹。也就是说,它通常从保存.vcproj或.vcprojx文件的目录执行(通常是保存.sln文件的解决方案目录文件夹下的一个文件夹)。
如果您的项目从 IDE 正确运行,但无法直接从发布文件夹运行,则很可能您依赖于项目数据文件(在您的情况下为图像),这些文件与项目文件夹中的源文件一起保存。从 Release 文件夹运行时,这些文件不再可见,因为您的 Release 文件夹是您的工作目录;不是项目文件夹。
有很多方法可以解决这个问题,每种方法都有自己的优点。几个选项是:
后期构建步骤
为您的项目创建一个后期构建步骤,将您的数据文件复制到$(TargetDir)您的项目所在的位置。然后,这些文件将在与您的可执行文件相同的目录中可见。
自定义构建目标
将您的数据文件添加到项目中并编写一个自定义构建脚本,该脚本执行相同的复制,但也建立一个输出依赖文件。
嵌入式资源
将数据文件作为自定义资源添加到您的可执行文件中。
还有其他选择,但我希望这能给你一些想法。
我使用 VS2008 并尝试回答您的问题。右键单击项目并在弹出窗口底部选择属性,然后转到配置属性下的调试。你可以看到你运行的命令和你在 IDE 中传递的参数。我猜你错过了一些参数。