Windows 7 上的 IDWriteFont::GetInformationalStrings(...) 问题(日语系统语言环境)
Issue with IDWriteFont::GetInformationalStrings(...) on Windows 7 (Japanese system locale)
我正在使用 IDWriteFont::GetInformationalStrings(...) 获取 Windows 7(日语语言环境 ja-JP)上的字体全名,问题如下:
当我将 DWRITE_INFORMATIONAL_STRING_FULL_NAME 或 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME 作为 DWRITE_INFORMATIONAL_STRING_ID 传递时,我得到 exists=false 并且没有返回 IDWriteLocalizedStrings(对于系统上的任何字体)。
但是,相应的条目存在于字体的名称 Table 中,并且 IDWriteFont::GetInformationalStrings(...) 调用在 Win 7(en-us 语言环境)上对相同的字体工作正常.
//works when system locale is en-us; exists=true
//does not work when system locale is ja-JP; exists=false; pFontNames=NULL
hr = pFont->GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_FULL_NAME, &pFontNames, &exists);
任何人都可以告诉我这是否是 DirectWrite 的问题。
谢谢。
我向 Microsoft 提出了一个错误,这是他们提供的解决方案:
[症状]
使用 DWRITE_INFORMATIONAL_STRING_FULL_NAME 或 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME returns 调用 IDWriteFont::GetInformationalStrings() 在某些机器上存在 == FALSE。
[原因]
DWRITE_INFORMATIONAL_STRING_FULL_NAME 和 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME 是在 Windows 8 中引入的。要使其正常工作,您需要在 Windows 7 (https://support.microsoft.com/en-us/kb/2670838) 上安装平台更新=24=]7个系统。
[解决]
安装平台更新解决了这个问题。
我正在使用 IDWriteFont::GetInformationalStrings(...) 获取 Windows 7(日语语言环境 ja-JP)上的字体全名,问题如下:
当我将 DWRITE_INFORMATIONAL_STRING_FULL_NAME 或 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME 作为 DWRITE_INFORMATIONAL_STRING_ID 传递时,我得到 exists=false 并且没有返回 IDWriteLocalizedStrings(对于系统上的任何字体)。
但是,相应的条目存在于字体的名称 Table 中,并且 IDWriteFont::GetInformationalStrings(...) 调用在 Win 7(en-us 语言环境)上对相同的字体工作正常.
//works when system locale is en-us; exists=true
//does not work when system locale is ja-JP; exists=false; pFontNames=NULL
hr = pFont->GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_FULL_NAME, &pFontNames, &exists);
任何人都可以告诉我这是否是 DirectWrite 的问题。
谢谢。
我向 Microsoft 提出了一个错误,这是他们提供的解决方案:
[症状] 使用 DWRITE_INFORMATIONAL_STRING_FULL_NAME 或 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME returns 调用 IDWriteFont::GetInformationalStrings() 在某些机器上存在 == FALSE。
[原因] DWRITE_INFORMATIONAL_STRING_FULL_NAME 和 DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME 是在 Windows 8 中引入的。要使其正常工作,您需要在 Windows 7 (https://support.microsoft.com/en-us/kb/2670838) 上安装平台更新=24=]7个系统。
[解决] 安装平台更新解决了这个问题。