2013-02-16 48 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