当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]消息函数不能操作gtk的嵌入浏览器--普通函数却可以?
帖子发表于 : 2009-02-03 16:43 
头像

注册: 2007-05-11 18:17
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
如题:
在用gtk写一个嵌入式浏览器的时候碰到的奇怪问题,大概描述一下...
消息函数 void OnComm(int sig) 响应信号量SIGUSR2
代码:
struct sigaction act_port, oldact_port;
   act_port.sa_handler =OnComm;
   sigemptyset(&act_port.sa_mask);
   sigaddset(&act_port.sa_mask, SIGUSR2); //添加SIGUSR2信号响应OnComm函数
   act_port.sa_flags = 0;
   sigaction(SIGUSR2, &act_port, &oldact_port);

函数中有条语句控制浏览器转跳到指定地址:
代码:
.
.
.
GoHome("XXX/index_t.jsp?IsBusy=1");//功能和在浏览气地址栏输入“XXX/index_t.jsp?IsBusy=1”一样
.
.
.

还有个普通函数 void Init_browser() 在程序初始化的时候调用,初始化浏览器。函数同样有条跟OnComm一样的地址转跳语句:
代码:
.
.
.
GoHome("XXX/index_t.jsp?IsBusy=0");//功能和在浏览气地址栏输入“XXX/index_t.jsp?IsBusy=0”一样
.
.
.

在程序初始化的时候调用函数Init_browser执行了GoHome,浏览器转到了指定地址,但是在给程序发SIGUSR2信号的时候调用OnComm执行了GoHome语句,浏览器却没有反应(测试过与转跳地址无关)。
GoHome函数如下:
代码:
...
GtkMozEmbed * browser;
...
void GoHome(char * url)
{
   char tmpURL[128];
   strcpy(tmpURL,Host);
   strcat(tmpURL,url);
   gtk_moz_embed_load_url(browser,(gchar *)tmpURL);
}

是不是信号函数和普通函数有区别,想不明白为什么会出现这情况呢...
请教下,有人能知道问题何在吗? :em23


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译