2011-04-22 46 views

回答

0
void CreateProfile(GtkWidget* widget, gpointer data) { 
    GtkEntry** entries = (GtkEntry**) data; 
    if (gtk_entry_get_text_length(GTK_ENTRY(entries[0]))== 0) do_something(); 
} 

回調的第二個參數應該是gpoitner。

+0

還是同樣的錯誤 – sometimes 2011-04-22 10:31:07

+1

什麼是傳遞是一個指針,而不是一個指針的指針。 – datenwolf 2011-04-22 11:43:49

1

我相信在

g_signal_connect(G_OBJECT(Buttons[0]),"clicked",G_CALLBACK(CreateProfile),EntryBoxes); 

EntryBoxes實際GtkEntrys之前定義。你傳遞的內容不是指向數組的指針,而是指向第一個數組元素的指針。所以,你必須轉換gpointer一個指針這樣的元素,即一個GtkEntry*(不是GtkEntry**

void CreateProfile(GtkWidget* widget, gpointer data) { 
    GtkEntry* entries = (GtkEntry*) data; 
    if (gtk_entry_get_text_length(GTK_ENTRY(entries[0]))== 0) 
     do_something(); 
}