Я сталкиваюсь с проблемой, которую я убиваю. У меня есть следующий код:
ComPtr<IDWriteFactory> factory;
DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), factory.GetAddressOf();
ComPtr<IDWriteTextFormat> textFormat;
factory->CreateTextFormat(L"Arial", nullptr, DWRITE_FONT_WEIGHT_NORMAL,
DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, 20.0f, nullptr,
textFormat.GetAddressOf());
После последней строки textFormat указывает на ноль. CreateTextFormat () возвращает значение E_INVALIDARG. У меня определенно установлен Arial, два параметра nullptr разрешены в соответствии с MSDN, поэтому я не вижу, что может быть недействительным. Может кто-нибудь пролить некоторый свет на это?
Как сказал CodeAngry, языковой тег и familyName не могут быть нулевыми (In_z, а не In_opt_z). Любой из них может быть пустым, хотя «», и в этом случае конкретный язык не используется, и по умолчанию выбираются резервные шрифты.