gtk中的一个函数问题
各位高手,我用GTK+做了一个小界面,里面有:
GtkWidget *button;
GtkWidget *entry;
然后gtk_signal_connect(GTK_OBJECT(button), "clicked ",GTK_SIGNAL_FUNC(do_send),entry);
下面是我的do_send()函数
void do_send(GtkWidget *button,gpointer entry)
{
const gchar *s;
s=gtk_entry_get_text(GTK_ENTRY(entry));
if(strlen(s))
write(wisock.sock,s,strlen(s))
}
目的就是点击一下按钮向套接字发送entry中的信息(wisock.sock就是套接字)。
可程序运行到这就出现段错误,我看了一下调试信息,看消息上说问题出在
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1217399104 (LWP 6305)]
0xb79d719c in g_type_check_instance_cast () from /usr/lib/libgobject-2.0.so.0
不懂这是怎么搞的...?
请高手救救我!
[解决办法]
GtkWidget *entry;
void do_send(GtkWidget *button,gpointer entry)
你仔细看看,entry是个部件,你传给do_send的entry,
改为
void do_send(GtkWidget *button,GtkWidget *entry)