GTK シグナルを作成して送信しようとしています:
g_signal_new("child-finished",
G_TYPE_OBJECT,
G_SIGNAL_RUN_FIRST,
0,
NULL, NULL,
NULL, // *** I think this is where I need to change it
G_TYPE_NONE, 0);
g_signal_connect(G_OBJECT(myWindow), "child-finished", G_CALLBACK(MyCallback), NULL);
信号を発する私のコードは次のとおりです。
gtk_signal_emit_by_name(referenceToMyWindow, "child-finished");
そして、信号を処理する私のコードは次のとおりです。
void MyCallback(GtkWidget *w, GdkEvent *e)
{
// handler code here
}
コードを実行すると、次のエラーが表示されます。
GLib-GObject-CRITICAL **: g
_closure_
invoke: assertion `closure->marshal || クロージャ ->meta_marshal' に失敗しました
マーシャラーを関数に渡すことと関係があることは知っていますがg_signal_new
、マーシャラーが何であるかはわかりません。ドキュメントを理解できず、オンラインの例はほとんどありません。自分のシグナルを宣言して接続するにはどうすればよいですか?