[Casting] Echec de conversion
Hello:!:
Voici le prototype d'une fonction (de la libraire standard) :
Code:
int ZeroWaitSelect( int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds );
Voici un appel de cette fonction dans mon code :
Code:
1 2 3 4 5 6 7 8 9
| fd_set read_fds;
fd_set error_fds;
FD_ZERO(&read_fds);
FD_SET(fdnet, &read_fds);
FD_ZERO(&error_fds);
FD_SET(fdnet, &error_fds);
if(ZeroWaitSelect(1, &read_fds, (fd_set*)0, &error_fds))
{
... |
Seulement, à la compilation, voici le message d'erreur :
Citation:
Envoyé par Le compilateur qui commence à m'énerver
cannot convert `_types_fd_set*' to `fd_set*' for argument `2' to `int ZeroWaitSelect(int, fd_set*, fd_set*, fd_set*)'
J'y comprends rien, je n'ai jamais vu le type "_types_fd_set" ... 8O Je précise qu'aucune fonction ou type n'est personelle, j'utilise ce qui m'est fournit avec le compilateur (mingw, je compile pour un processeur Coldfire...) :!:
J'ai même essayé :
Code:
ZeroWaitSelect(1, reinterpret_cast<fd_set *>(&read_fds), reinterpret_cast<fd_set *>(0), reinterpret_cast<fd_set*>(&error_fds))
Rien y fait ... :cry:
Une idée avant que je n'ai plus aucun cheveux sur la tête ... ?! :aie:
Bien dit-il ... puis il mourut !
Après avoir jouer sur les #include une n-ième fois, ça marche, sans le casting en plus ...
Me demandez-pas pourquoi :!: C'est la fin de la semaine, mon compilateur en a lourd sur le coeur ... :marteau: