0

我正面临一个我正在自杀的问题。我有以下代码:

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

4

1 回答 1

2

就像 CodeAngry 说的,语言标签和 familyName 不能为空(In_z 而不是 In_opt_z)。两者都可以是空的,尽管“”,在这种情况下不使用特定的语言并选择默认的后备字体。

于 2015-09-18T02:46:35.497 回答