- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解 DirectWrite API,这样我就可以获得一个灵活的解决方案来解决从任何文化中呈现文本的问题,并有可能使用它来将富文本编辑合并到一个比“固定的”编辑/显示文本的方式。
PadWrite sample看起来很棒,并展示了 API 的设计是多么的好——这是微软自己的截图:
示例文本包括以“混合脚本:”开头的一行 在源代码中,所有示例文本均由单个 C++ wchar_t[]
文字指定,并且混合脚本全部正确显示Visual Studio 2012 的代码编辑器。如果我将它们复制并粘贴到普通的 Windows 写字板中,它们也能正确显示。阿拉伯语从右到左的部分在这两个编辑器中都有正确的插入符号导航行为。
但是当我实际运行 PadWrite 示例时,这些都不起作用。相反,我看到了这个:
它几乎看起来像是被转换成 UTF-8 然后被误解了(这没有意义,因为它都是用 wchar_t
完成的。)
我运行的是 Windows 8.1。我需要做什么才能使 PadWrite 像写字板或 Visual Studio 2012 一样工作?它是来自从未更新过的 API 预发布版本的失效示例吗?
注意。第一个警告标志是 PadWrite 一开始甚至没有编译 - 在文件 EditableLayout.cpp
和 TextEditor.cpp
中我不得不在 #include 之后添加它
语句:
#undef max
#undef min
最佳答案
我在 MSDN forums 上得到了答案.问题在于,自创建示例以来,Visual C++ 编译器已更改,因此它不再能够检测 UTF-8 编码而不存在 UTF-8 签名,而 Visual Studio 仍然可以。并且创建了示例,因此源文件没有 UTF-8 签名。
因此,VS 的代码编辑器在源文件中正确显示字符,但在编译源文件时,字符被错误解释。
所以解决方案是使用另存为,使用编码保存...,然后选择Unicode(带有签名的UTF-8) .
关于c++ - 我怎样才能使 DirectWrite PadWrite 示例工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518040/
我正在尝试了解 DirectWrite API,这样我就可以获得一个灵活的解决方案来解决从任何文化中呈现文本的问题,并有可能使用它来将富文本编辑合并到一个比“固定的”编辑/显示文本的方式。 PadWr
我是一名优秀的程序员,十分优秀!