當我在參考http://debian.linux.org.tw/~kevpeng/所作的GTK教學時,這個button.c編譯會發生下面的錯誤:
button.c:15: error: invalid conversion from `const void*’ to `void*’
button.c:15 error: initializing argument 4 of `gulong g_signal_connect_data(void*, const gchar*, void (*)(), void*, void (*)(void*, GClosure*), GConnectFlags)’
感覺好像是型態上的錯誤,因為on_clicked函式有個gpointer的型態,所以我將15行的”[Click Me]”這個字串得轉換字串為(gpointer) “[Click Me]”放在g_signal_connect函式中編譯才會成功!
這支踩地雷遊戲,mines.c編譯時也一樣有類似的錯誤:
mines.cpp:120: error: invalid conversion from `int’ to `GtkDialogFlags’
mines.cpp:120: error: initializing argument 2 of `GtkWidget* gtk_message_dialog_new(GtkWindow*, GtkDialogFlags, GtkMessageType, GtkButtonsType, const gchar*, …)’
將120行改成
dialog=gtk_message_dialog_new(GTK_WINDOW(window),(GtkDialogFlags) 0,GTK_MESSAGE_INFO, GTK_BUTTONS_OK, msg);
這樣編譯就可以成功了!
編譯好的踩地雷下載mines.exe