我有一个c ++应用程序,必须在某个事件上创建一个基于gtk的弹出窗口。
目前,我在名为_displaytask
的事件上分叉一个线程,该线程调用gtk_init()
。
对gtk_init
的调用挂起,永不返回。任何人都知道电话挂断的原因吗?
gtk版本是gtk + -2.0。
void* Gui::displayTask(void *data)
{
IDC_TRACE("Gui::display task tart");
Gui* obj=(Gui *)data;
if(obj!=NULL)
{
if( ! g_thread_supported() )
g_thread_init( NULL );
/* Secure gtk */
gdk_threads_init();
gdk_threads_enter();
IDC_TRACE("doing a gtk init");
gtk_init_check(0,0);
obj->initialise();
控件达到gtk_init()
但永远不会超过它以达到初始值。
答案 0 :(得分:0)
答案 1 :(得分:0)
Gui_display:04714807269964847148072699648 errno variable = 0
(进程:26070):Gtk-WARNING **:此进程当前正在运行setuid或setgid。 这不是GTK +的支持使用。您必须创建一个帮助器 程序而不是。有关详细信息,请参阅:
http://www.gtk.org/setuid.html
拒绝初始化GTK +。
我之前不知道。收到此错误信息。现在,唯一的方法就是在不同的过程中