gdi+ PrivateFontCollection AddFontFile 总是返回带有“InvalidParameter”的状态

Art*_*ano 3 c++ fonts gdi+ win32gui typeface

每一个,我使用GDI +渲染文本用我自己的字体,但我总是得到一个错误状态InvalidParameter使用成员函数时AddFontFile(WCHAR *)PrivateFontCollection加载我的字体文件,这里是我的代码:

PrivateFontCollection m_font_collection;
... // initialize window
GdiplusStartup(&gdi_token, &gdi_startup_input, NULL);
// here the result always is 2 (that specified as "InvalidParameter")
Status result = m_font_collection.AddFontFile(L"myfont.ttf");
Run Code Online (Sandbox Code Playgroud)

我找不到任何解释为什么会发生此错误,有人知道如何解决该问题吗?谢谢!ps:原谅我可怜的英语... :)


我已经解决了这个问题,这是一个愚蠢的问题,所以,请原谅我...请在我的答案下方查看
我的答案

Art*_*ano 5

好的,我已经解决了这个问题……我是多么愚蠢……这个问题很愚蠢,我太早定义了m_font_collection!它应该在函数GdiplusStartup被调用后定义,只有在 GDI+ 被初始化后PrivateFontCollection才能加载你自己的字体文件......希望可以帮助别人