Problème avec le passage de paramètres dans une fonction

z_san
Messages postés
80
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
24 mai 2007
- 11 avril 2006 à 09:09
z_san
Messages postés
80
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
24 mai 2007
- 11 avril 2006 à 11:57
Bonjour à tous

Voilà j'ai un petit soucis avec le passage de fonction en paramètres à une fonction.

Je dispose d'un .h développé en C avec son .lib, je développe une dll en VC++ Express qui utilise les méthodes déclarées ds le header.

quand je fais appel à une méthode qui prends en paramètre une fonction, le compilateur à quelques soucis, j'avoue avoir tout éssayé (passage par référence etc...) mais rien.

Voilà le prototype de la fonction que j'appel :

void toto (void (*procedure) void);

dans la dll j'ai bien essayé de l'appeler mais rien n'y fait j'ai toujour une erreur.

Je précise, le .h a été développé pour de l'unix apprement du C standard, ainsi que sa lib associé, je n'ai aucuns soucis avec celle-ci hormis le passage de fonction en paramètre, la fonction toto crée un callback qui fait appel à la fonction void procedure(void).

Voilà si vous avez des pistes.

Merci Z.

PS : pour ceux qui ont des soucis avec des erreurs de linkages quand ils utilisent des lib écrites en C sous VC++ ou autres compilateur. La solution est simple dans les propriétés de projet aller sur l'éditeur de liens en donnez le chemine de toutes les lib nécessaires. Moi j'ai rajouté dans mon .h l'expression

extern "C" {
.
.
code du header en C
.
.
}

aprés tout ça j'ai résolu tout les problème de linkages qui arrive la plus part du temps

1 réponse

z_san
Messages postés
80
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
24 mai 2007

11 avril 2006 à 11:57
en gros j'ai l'erreur


C2664 : Impossible de convertir le paramètre 1 'void' en 'void* (__cdecl*) (void*)'

voilà ce qui se passe
0