我使用GLib在ANSI C中创建框架。 GError结构提供了一种管理错误的好方法,但我想修改我的print_error宏,以便将错误传播到UI。
' print_error'宏是以下一个:
#define print_error( error ) \
g_assert(error != NULL); \
g_warning("%s", error->message); \
g_error_free(error);
如何为我的目的修改它?
答案 0 :(得分:1)
保持宏原样,但register a handler会在您的用户界面中显示错误。如何执行此操作取决于您的应用程序,以及您希望如何显示错误。
void my_log_handler (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data) {
// Message contains the error string... put it in your UI here
popup_error_dialog_or_whatever (message);
}
如何将数据发送到用户界面取决于您的代码,您正在使用的工具包,您希望如何显示它等等。
实际上,我不会按原样保持宏 - I would put it inside of a do...while loop。