IDWriteFactory :: CreateTextFormat()失败

时间:2015-02-08 18:51:27

标签: c++ direct2d directwrite

我遇到了一个我自杀的问题。我有以下代码:

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参数,所以我不知道什么是无效的。任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

与CodeAngry一样,语言标记和familyName不能为null(In_z而不是In_opt_z)。要么可能是空的,而且#34;&#34;,在这种情况下,不使用特定的语言,并选择默认的后备字体。