6Fermer8
FarewellLe 22/07/2012 à 20:00
Bon, ça n'a rien à voir avec Qt, mais j'arrive pas à affecter des p*tains de pointeurs à une p*tain de structure contenant des p*tain de pointeurs de p*tain de fonction.

Dans le header de la lib :
typedef void (*irc_event_callback_t) (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count);
typedef void (*irc_eventcode_callback_t) (irc_session_t * session, unsigned int event, const char * origin, const char ** params, unsigned int count);
typedef void (*irc_event_dcc_chat_t) (irc_session_t * session, const char * nick, const char * addr, irc_dcc_t dccid);
typedef void (*irc_event_dcc_send_t) (irc_session_t * session, const char * nick, const char * addr, const char * filename, unsigned long size, irc_dcc_t dccid);

Puis :
typedef struct
{
	irc_event_callback_t	event_connect;
	irc_event_callback_t	event_nick;
	irc_event_callback_t	event_quit;
	irc_event_callback_t	event_join;
	irc_event_callback_t	event_part;
	irc_event_callback_t	event_mode;
	irc_event_callback_t	event_umode;
	irc_event_callback_t	event_topic;
	irc_event_callback_t	event_kick;
	irc_event_callback_t	event_channel;
	irc_event_callback_t	event_privmsg;
	irc_event_callback_t	event_notice;
	irc_event_callback_t	event_invite;
	irc_event_callback_t	event_ctcp_req;
	irc_event_callback_t	event_ctcp_rep;
	irc_event_callback_t	event_ctcp_action;
	irc_event_callback_t	event_unknown;
        irc_eventcode_callback_t	event_numeric;
	irc_event_dcc_chat_t		event_dcc_chat_req;
	irc_event_dcc_send_t		event_dcc_send_req;
} irc_callbacks_t;

J'ai donc défini ça :
void event_connect (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_nick (irc_session_t *session, unsigned int event, const char *origin, const char **params, unsigned int count){}
void event_quit (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void join (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_part (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_mode (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_umode (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_topic (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_kick (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_channel (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_privmsg (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count){}
void event_notice (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_channel_notice (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_invite (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_ctcp_req (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_ctcp_rep (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_ctcp_action (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_unknown (irc_session_t *session, const char *event, const char *origin, const char **params, unsigned int count){}
void event_numeric (irc_session_t *session, unsigned int event, const char *origin, const char **params, unsigned int count){}
void event_dcc_chat_req (irc_session_t * session, const char * nick, const char * addr, irc_dcc_t dccid){}
void event_dcc_send_req (irc_session_t *session, const char *nick, const char *addr, const char *filename, unsigned long size, irc_dcc_t dccid){}

Et ensuite, j'essaye d'écrire la structure de type irc_callbacks_t :
 irc_callbacks_t ic =
{
    event_connect,
    event_nick,
    event_quit,
    join,
    event_part,
    event_mode,
    event_umode,
    event_topic,
    event_kick,
    event_channel,
    event_privmsg,
    event_notice,
    event_channel_notice,
    event_invite,
    event_ctcp_req,
    event_ctcp_rep,
    event_ctcp_action,
    event_unknown,
    event_numeric,
    event_dcc_chat_req,
    event_dcc_send_req
};

Mais là, je me plante certainement côté syntaxe, j'arrive pas à faire cette p*tain d'affectation. Ca me surgonfle

LE pire est que j'ai 5 erreurs comme ça à la compilation :
error: invalid conversion from 
    'void (*)(irc_session_t*, unsigned int, const char*, const char**, unsigned int) 
{aka void (*)(irc_session_s*, unsigned int, const char*, const char**, unsigned int)}' to 'irc_event_callback_t 
{aka void (*)(irc_session_s*, const char*, const char*, const char**, unsigned int)}' [-fpermissive]

Je panne rien sick

Comment écrire cette malheureuse structure contenant une 15aine de pointeurs de fonctions ??