在子线程中调用函数,显示一个含有view的窗口,程序报错。但是,在主线程(main函数)里面调用的话,不报错!介是问什么啊!!!!求解!!!!

xiaowh001 2012-04-18 07:54:21
和这个类似,把gtk_text_view_new插入面板报错。http://zhidao.baidu.com/question/262205672.html

但是,我的没有线程调用新函数并没有使用公有数据,因此不存在使用lock的情况。希望大牛们帮帮我啊!
子线程调用代码如下:
gdk_threads_enter(); //省略若干判断.........
else if(memchr(buf,'4',1)){//这是我的一个判断条件而已


struct msg_chat *msg;

msg = (struct msg_chat *)malloc(sizeof(struct msg_chat));

msg = (struct msg_chat *)buf;

printf(" logined from : %s \n",msg->to);

chat_window_init("asdfasdfasdf");


}

void chat_window_init(char *username){

...省略部分代码
window_chat ->p_text = gtk_text_view_new();

gtk_text_view_set_editable ((GtkTextView *)window_chat ->p_text,FALSE);


gtk_container_add(GTK_CONTAINER(window_chat ->p_view),window_chat ->p_text);


gtk_box_pack_start(GTK_BOX(window_chat ->p_vbox),window_chat ->p_view,TRUE,TRUE,5);
...
}

linux终端报错如下:
(client:7472): Gtk-CRITICAL **: gtk_text_attributes_ref: assertion `values != NULL' failed

(client:7472): Gtk-CRITICAL **: gtk_text_attributes_ref: assertion `values != NULL' failed

(client:7472): Pango-CRITICAL **: pango_layout_new: assertion `context != NULL' failed
段错误



谢谢各位大牛解答,不胜感激!
...全文
140 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧