gdi+ PrivateFontCollection AddFontFile всегда возвращает статус с InvalidParameter

каждый, я использую 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");

Я не могу найти объяснения, почему возникает эта ошибка, кто-нибудь знает, как решить эту проблему? Спасибо! ps: простите мой плохой английский... :)


Я решил эту проблему, это глупый вопрос, так что простите меня... пожалуйста, проверьте мой ответ ниже
Мой ответ


person Artiano    schedule 04.05.2015    source источник
comment
очевидный вопрос: ваш собственный шрифт сломан? (т.е. можете ли вы установить его в Windows, сигнализирует ли TTX о каких-либо проблемах с ним, загрузит ли его fontforge и т. д.)   -  person Mike 'Pomax' Kamermans    schedule 04.05.2015
comment
@Mike'Pomax'Kamermans Спасибо за ваш комментарий, я решил эту проблему, пожалуйста, проверьте мой ответ~ :)   -  person Artiano    schedule 05.05.2015


Ответы (1)


Хорошо, я решил эту проблему... какой же я глупый... вопрос довольно глупый, я слишком рано определил m_font_collection! Он должен быть определен после вызова функции GdiplusStartup, только после инициализации GDI+ PrivateFontCollection может загружать ваши собственные файлы шрифтов... Надеюсь, кому-нибудь поможет

person Artiano    schedule 04.05.2015