2012-09-07 144 views
0

FreeType库定义了很多basic data types,但我不太清楚如何使用它们。我试图用FT_Get_Glyph_Name方法,它采用这种形式:使用自定义数据类型

FT_Get_Glyph_Name(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max); 

所以我有这样的代码:

FT_Face = face; 
FT_Pointer = name; 
FT_Get_Glyph_Name(face, 0, name, 45); 

这工作得很好,但我不知道如何真正得到名称的字符串表示(例如,与printf一起使用)。我如何从FT_Pointer获得一个字符串?

回答

1

从文档链接:

字形名称被截断以适应缓冲区内,如果实在是太 长。返回的字符串始终以零结尾。

FT_Pointer是void *上的typedef。

一个简单的演员阵容足够了:

char name[100]; 
FT_Get_Glyph_Name(face, 0, (FT_Pointer) name, 100); 
printf("Name : '%s'\n", name); 

您还可以使用FT_Pointer类型变量,并将它们转换为(字符*)。

+0

工作!谢谢!我不确定我是否完全理解了'FT_Pointer'的目的 - 它似乎没有实际做任何有用的事情(我确信它确实,我只是没有看到它)... –