c++ - 在 Visual Studio 中处理简单 C++ 项目的图像和声音文件

标签 c++ visual-studio-2010

我是 Visual Studio 的新手,我正在尝试找出组织项目的最佳方式。

我正在使用 sfml 库编写一个应用程序,并且我有各种正在使用的资源(图像/声音)。我将它们放入项目文件夹,当我从 Visual Studio 启动我的应用程序时一切正常。

不过我想知道,这如何转化为部署程序的时间?如果我进入解决方案的调试文件夹并尝试启动 exe,它无法找到任何资源文件。我应该告诉 Visual Studio 将文件复制到适当的目录吗?如果是,如何复制?

感谢您提供任何建议或链接。

最佳答案

对于稍微复杂一点的“部署”场景,可以使用post-build scripts例如,将正确的文件复制到输出目录,甚至将其打包成一个 zip 文件。

如果您发现自己编写了不止一页的批处理,您可能需要考虑以下选项,因为批处理是一个需要调试的 PITA。

最近的MSVS项目文件其实是MSBuild文件(只需在记事本或 Vim 中打开 .vcxproj 文件)。例如,您可以使用 Copy task , 使用 Exec task 调用任意程序等。它可能比构建后脚本中的批处理脚本更复杂一些。 MSBuild 4 可以使用 Property Functions使它很有表现力。 Useful reference if you do this

对于“成熟的”项目,您需要使用专用的 MSBuild 文件来启动专用的构建系统,NAnt甚至更高级别的包装器,如 Rake .

作为不太受欢迎的替代方案,在之前的项目中,我在解决方案中构建了一个小型专用“生成器”.exe 项目,并让其他项目依赖于它。然后在其他项目的构建后脚本中,我只是调用带有参数的构建器项目以使其执行某些任务。优点是您可以编写 C#(或 F# 或 VB.NET),而不必(那么多)与构建系统作斗争,我认为它非常适合中小型项目。

关于c++ - 在 Visual Studio 中处理简单 C++ 项目的图像和声音文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453829/

相关文章:

c++ - 如何将度数转换为弧度?

c# - 在 VS Package 项目中获取 dte2 或 TeamFoundationServerExt 对象?

visual-studio-2010 - 为 xml 文档设置语言

c++ - 在 Visual Studio C++ 2008 中链接库 (.lib) 和 (.dll)

c++ - 扩展 vector 并调用 push_back 函数

C++ STL:将派生虚拟类用作 std::sort() 的 "Strict Weak Ordering"

c++ - STL中的调试错误

c++ - 将 C++ __fastcall Hook 从 x86 移植到 x64

c# - Microsoft.ACE.OLEDB.12.0 未注册到本地计算机

c++ - 展开两个参数包