我正在使用一个库,要求我将Unicode代码点应用为long。 我正在使用C ++。
我不确定我是否正确行事。我已经看过这个论坛和谷歌,我只是无法理解答案。没有什么能直接回答这个问题。
在我的代码中,我使用一个函数从包含字体度量的对象中获取字形ID。
例如
int FontMetrics->GetGlyphID(long unicode_codepoint).
理论上我应该可以做这样的事情。只是一个简单的静态演员。但是我的函数返回零,因为我正确地应用了unicode代码点。我只是不确定如何。我的示例下面是正确的还是有另一种正确的方法吗?我正在使用C ++而不是C。
char my_character = 'a';
int GlyphID = FontMetrics->GetGlyphID( (long)my_character) )
答案 0 :(得分:1)
您正确地转换为unicode long(至少对于ASCII)。如果我们查看PoDoFo的API,我们看到的是:
虚拟长PoDoFo :: PdfFontMetrics :: GetGlyphId(长 lUnicode)const
获取当前字体中的unicode字符的字形ID。
参数lUnicode:unicode字符值
返回:字符的glyhph(sic)id,如果找不到字形,则返回0。
所以我最好的猜测是你没有正确设置当前的字体。为什么不向我们提供无效的代码的最小,完整和可验证的示例。