Я программирую на C ++ и использую инструменты SpriteFont, которые поставляются с DirectXTK. Я объявил переменную в своем классе так:
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, а сам файл находится в правильной папке.
Что здесь не так? Я что-то пропустил?
Любая помощь будет оценена.
Задача решена. Что-то простое на самом деле, но я хотел бы опубликовать это здесь, чтобы напомнить всем, чтобы не делать глупых ошибок, которые я сделал.
При добавлении существующего элемента с помощью обозревателя решений в Visual Studio проверьте его свойства и убедитесь, что он участвует в сборке (т. Е. Флаг Тип элемента НЕ установлен на «не участвовать в сборке»). Я установил тип элемента «Шрифт», и это сработало.
Спасибо всем за помощь.
Других решений пока нет …