c++ - 创建 SpriteFont 时参数无效

标签 c++ graphics directx spritefont

我正在使用 C++ 编程并使用 DirectXTK 附带的 SpriteFont 工具。我在我的类中这样声明了一个变量:

std::unique_ptr<DirectX::SpriteFont> m_SpriteFont;

我是这样初始化的:

m_SpriteFont = std::unique_ptr<SpriteFont>(new SpriteFont(m_d3dDevice.Get(), L"Assets\\TNR.spritefont"));

它给出了一个未处理的异常。通过程序调试,好像是读取文件有问题。该文件是使用工具包附带的 MakeSpriteFont.exe 生成的。字体为 Times New Roman,大小为 12。我已经使用 Visual Studio 解决方案资源管理器将此文件添加到 Assets 文件夹中,并且文件本身位于正确的文件夹中。

这里有什么问题?我错过了什么吗?

如有任何帮助,我们将不胜感激。

最佳答案

问题解决了。确实很简单,但我还是想把它贴在这里提醒大家不要犯我犯过的愚蠢错误。

当您在 Visual Studio 中使用解决方案资源管理器添加现有项目时,检查它的属性并确保它参与构建(即项目类型标志未设置为“不参与构建”)。我将项目类型设置为“字体”,它起作用了。

谢谢大家的帮助。

关于c++ - 创建 SpriteFont 时参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911878/

相关文章:

opengl - 有没有办法克服 PC 上的图形 API CPU 瓶颈?

C++ 通过参数写入文件或控制台

c++ - cin.get() 和 cin.getline() 的区别

c++ - 用 C++ 将未压缩的 TGA 写入文件

graphics - 如何判断片段的颜色是否为白色?

qt - 媒体播放器/录音机(声子)

c++ - 将 C++ vector 转换为 C

c++ - 这不是 const auto& 多余的吗?

algorithm - 如何跟踪/颜色分离使用 perlin 噪声生成的形状?

directx - 关于在 C++ 中的 DirectX9 中使用的 .fx 文件和着色器的一般混淆 - 您究竟如何与应用程序建立连接?