我正在使用 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/