如何从 FT_Error 代码中获取相应的错误字符串?
How can I get the corresponding error string from an FT_Error code?
给定一个FT_Error,是否有macro/function到return对应的错误信息字符串?
据我所知,答案是否。
您应该创建自己的宏或函数,
使用 fterrors.h 中定义的宏。
例如,以下代码将起作用:
#include <ft2build.h>
#include FT_FREETYPE_H
const char* getErrorMessage(FT_Error err)
{
#undef FTERRORS_H_
#define FT_ERRORDEF( e, v, s ) case e: return s;
#define FT_ERROR_START_LIST switch (err) {
#define FT_ERROR_END_LIST }
#include FT_ERRORS_H
return "(Unknown error)";
}
阅读 fterrors.h(在我的环境中的 /usr/local/include/freetype2/ 中找到)以获取更多详细信息和另一个示例。
为了防止其他人偶然发现这个问题,FreeType2 版本 2.10.1 中引入了 FT_Error_String
以检索 FT_Error 代码的错误字符串。
FT_Error error = ...
if (error != 0)
{
puts(FT_Error_String(error), stderr);
}
重要提示:你必须在编译FreeType时定义FT_CONFIG_OPTION_ERROR_STRINGS
否则函数将returnNULL
.
给定一个FT_Error,是否有macro/function到return对应的错误信息字符串?
据我所知,答案是否。
您应该创建自己的宏或函数, 使用 fterrors.h 中定义的宏。 例如,以下代码将起作用:
#include <ft2build.h>
#include FT_FREETYPE_H
const char* getErrorMessage(FT_Error err)
{
#undef FTERRORS_H_
#define FT_ERRORDEF( e, v, s ) case e: return s;
#define FT_ERROR_START_LIST switch (err) {
#define FT_ERROR_END_LIST }
#include FT_ERRORS_H
return "(Unknown error)";
}
阅读 fterrors.h(在我的环境中的 /usr/local/include/freetype2/ 中找到)以获取更多详细信息和另一个示例。
为了防止其他人偶然发现这个问题,FreeType2 版本 2.10.1 中引入了 FT_Error_String
以检索 FT_Error 代码的错误字符串。
FT_Error error = ...
if (error != 0)
{
puts(FT_Error_String(error), stderr);
}
重要提示:你必须在编译FreeType时定义FT_CONFIG_OPTION_ERROR_STRINGS
否则函数将returnNULL
.