У меня есть структура, похожая на приведенную ниже
struct dc_callback
{
int
my_configure_event(
GtkWidget *widget,
GdkEventConfigure *event,
struct LoadData *myData)
{
...others
return TRUE;
}
//Parametrized Constructor
int
my_draw(
GtkWidget *widget,
cairo_t *cr,
struct LoadData *myData)
{
...others
return TRUE;
}
};
Она имеет две параметризованные функции-члена, которые я собираюсь вызывать из g_signal_connect
в некоторый n-й раз.
main(){
int i;
dc_callback dc_callback_instance[nth];
for(i=0;i<nth;i++){
g_signal_connect(widget_list[i],"draw",G_CALLBACK(dc_callback_instance[i].my_draw),myData);
g_signal_connect(widget_list[i],"configure-event",G_CALLBACK(dc_callback_instance[i].my_configure_event),myData);
}
}
Тем не менее, во время компиляции я получаю сообщение об ошибке при неправильном использовании функции-члена int dc_callback::my_draw(args)
. Он просит меня добавить ()
, но это не может быть сделано, поскольку G_CALLBACK принимает имя функции без присоединенного аргумента.
Как это сделать?