我遇到了一个我自杀的问题。我有以下代码:
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指向null。 CreateTextFormat()返回值E_INVALIDARG。我肯定安装了Arial,根据MSDN允许两个nullptr参数,所以我不知道什么是无效的。任何人都可以对此有所了解吗?
答案 0 :(得分:1)
与CodeAngry一样,语言标记和familyName不能为null(In_z而不是In_opt_z)。要么可能是空的,而且#34;&#34;,在这种情况下,不使用特定的语言,并选择默认的后备字体。