2015-05-04 4 views
2

каждые один, я использую GDI + для рендеринга текста с моим собственным шрифтом, но я всегда получаю статус ошибки InvalidParameter при использовании функции члена AddFontFile (WCHAR *) из PrivateFontCollection загрузить мой файл шрифта, вот мой код:GDI + PrivateFontCollection AddFontFile всегда возвращает статус с «InvalidParameter»

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"); 

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


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

+0

очевидный вопрос: ваша собственная гарнитура не работает? (то есть вы можете установить его в Windows, TTX сигнализирует о каких-либо проблемах с ним, будет ли загружать его fontforge и т. д.) –

+0

@ Mike'Pomax'Kamermans Спасибо за ваш комментарий, я решил эту проблему, пожалуйста, проверьте мой ответ ~ :) – Artiano

ответ

2

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