2013-02-16 88 views
0

我使用C++进行编程,并使用DirectXTK附带的SpriteFont工具。我在类中声明的变量这样的:创建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 Solution Explorer将此文件添加到资产文件夹,并且文件本身位于正确的文件夹中。

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

任何帮助,将不胜感激。

+0

只是让你知道:那是赋值,而不是初始化。你也可以做'm_SpriteFont.reset(新的SpriteFont(...))'。 – 2013-02-16 15:28:38

+0

可能有必要将行中的各个部分分开以确定哪个引发异常并让我们知道异常的详细信息。 – 2013-02-16 15:33:26

回答

1

问题解决。真的很简单,但我尽管在这里发布它来提醒大家不要犯我犯的愚蠢错误。

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

谢谢大家的帮助。

+0

+1你节省我的一天。 – 2013-03-26 16:10:45