次のコード スニペットを実行しようとすると、このエラーと奇妙な意味不明なメッセージが表示され続けます。
エラー:
(foo:11333): Pango-WARNING **: 無効な UTF-8 文字列が pango_layout_set_text() に渡されました
構造定義:
typedef struct chat_info ChatInfo;
struct chat_info {
GtkWidget *text_line1;
GtkWidget *text_line2;
GtkWidget *text_line3;
GtkWidget *entry;
};
そして、このコードは 3 番目のラベル (2 番目のラベルは空) で奇妙な意味不明な言葉が出てくるようにします。
static void send_message(GtkWidget *window, gpointer data){
GuiInfo *g = (GuiInfo *) data;
ChatInfo *c = g->chat;
const gchar *message = gtk_entry_get_text(GTK_ENTRY(c->entry));
const gchar *oldtext1 = gtk_label_get_text( (GtkLabel *) c->text_line1);
const gchar *oldtext2 = gtk_label_get_text( (GtkLabel *) c->text_line2);
gtk_label_set_text( (GtkLabel *) c->text_line1, message);
gtk_label_set_text( (GtkLabel *) c->text_line2, oldtext1);
gtk_label_set_text( (GtkLabel *) c->text_line3, oldtext2);
}
エラーを調べたところ、おそらく gchar 文字列を指定する必要があるときにポインターアドレスを指定したようなことが原因だと思いますか? しかし、すべてが正しく見えます。