zoukankan      html  css  js  c++  java
  • gobject对象不宜作为动态加载的插件

    转载时请注明出处和作者联系方式
    作者联系方式:李先静 <xianjimli at hotmail dot com>

    前段时间对 syncmanager进行重构,为了减少不必要的开销,我决定在需要时才加SyncSource插件,不需要时就卸载它们。在测试时发现第一次运行时正 常,第二次运行时创建DbPersistance对象时失败了。仔细看了下调试信息,里面告诉我说注册DbPersistance类型失败,因为已经 DbPersistance类型注册了。不太可能啊,对象注册类型时一般都会防止重复注册的,比如:

     

    gtk_button_get_type (void)

    {

      
    static GType button_type = 0;

     
      
    if (!button_type)

        
    {

          
    static const GTypeInfo button_info =

          
    {

        
    sizeof (GtkButtonClass),

        NULL,       
    /* base_init */

        NULL,       
    /* base_finalize */

        (GClassInitFunc) gtk_button_class_init,

        NULL,       
    /* class_finalize */

        NULL,       
    /* class_data */

        
    sizeof (GtkButton),

        
    16,     /* n_preallocs */

        (GInstanceInitFunc) gtk_button_init,

          }
    ;

     

          button_type 
    = g_type_register_static (GTK_TYPE_BIN, "GtkButton",

                            
    &button_info, 0);

        }


     

      
    return button_type;

    }


  • 相关阅读:
    delphi 让子窗体显示最大化
    Delphi 中拖动无边框窗口的5种方法
    Delphi 非主窗体(即子窗体)在任务栏显示按钮
    电脑快捷键大全
    picpick快捷键
    is()
    animate()
    :animated
    css() 方法返回或设置匹配的元素的一个或多个样式属性。
    outerWidth()
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167644.html
Copyright © 2011-2022 走看看