我在Windows 8.1,visual studio 2017.使用字體資源編譯
我在我正在使用的directx項目中使用這個定價字體。
我用AddFontResourceEx
加載它,並用D3DXCreateFont
爲它創建一個字體。
當我點擊「本地Windows調試器」時,一切都很好,字體呈現。無論是在發佈或調試模式。 問題出現在我通過任何可執行文件時,它從不呈現所述字體,無論是釋放還是調試。
所以我去讀了,我讀了msdn,this one和其他需要的文章。
我不覺得我做錯什麼,我的資源視圖看起來是這樣的:
,並IDR_FONT1看起來是這樣的:
文件自動加載到解決方案資源管理器中(我沒有添加它,VS從Resource.rc文件中),如下所示:
有了這些禮節:
我添加它,像這樣:
AddFontResourceEx("pricedown.ttf", FR_PRIVATE, 0);
this->createFont("Pricedown", 60, true, false);
哪裏的CreateFont是我的函數添加的字體(剝離下來,它有數組) :
bool D3D9Render::createFont(char *name, int size, bool bold, bool italic)
{
D3DXCreateFont(m_pD3dDev, size, 0, (bold) ? FW_BOLD : FW_NORMAL, 0, (italic) ? 1 : 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH, name, &m_pFont);
return true;
}
我正在編譯它爲x64版本。
正如我所說的,當我按「本地Windows調試器」(任何模式,包括x64發行版)時,它都能正常工作並呈現字體,但是當我轉到project/x64/Release
時,它不會呈現字體。即使可執行文件大小也足夠了。
GetLastError
在AddFontResource
爲2(ERROR_FILE_NOT_FOUND)
我在做什麼錯?
你爲什麼要使用傳統的Direct3D 9,如果你使用的是Windows 8.1嗎?請記住,「D3DX9」已被棄用,DirectX SDK本身也是如此。如果您打算在VS 2017中使用舊版DirectX SDK,請務必閱讀[MSDN頁面]的底部(https://msdn.microsoft.com/zh-cn/library/windows/desktop/ee663275.aspx )以獲得有關正確設置include/lib路徑的詳細信息,以便將舊的DXSDK與您正在使用的較新的Windows 10 SDK混合使用。另見[沒有D3DX的生活](https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/)。 –