Bonjour tout le monde,

je rencontre actuellement un petit problème avec la méthode cvCreateButton.

Pour commencer, dans la doc ici, on a :

Prototype :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
cvCreateButton(const char* button_name CV_DEFAULT(NULL), CvButtonCallback on_change CV_DEFAULT(NULL), void* userdata CV_DEFAULT(NULL), int button_type CV_DEFAULT(CV_PUSH_BUTTON), int initial_button_state CV_DEFAULT(0))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CV_EXTERN_C_FUNCPTR( *CvButtonCallback)(int state, void* userdata));
Exemples :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
cvCreateButton("button5",callbackButton1,NULL,CV_RADIOBOX);
cvCreateButton("button6",callbackButton2,NULL,CV_PUSH_BUTTON,1);
-------------------------------

Quant à mon exemple, j'ai donc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
cvCreateButton("btn_findMarker", findOneMarker, NULL, CV_PUSH_BUTTON, 0);
avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
void findOneMarker(int state, void* userdata)
{
}
et le joli message d'erreur :

error LNK1120: 1 externes non résolus

error LNK2019: symbole externe non résolu _cvCreateButton référencé dans la fonction _main ...\TestOpenCV.obj
Le problème se situe forcément avec "CV_EXTERN_C_FUNCPTR" mais je ne sais pas vraiment comment le manipuler. CV_EXTERN_C_FUNCPTR(findOneMarker) ?

Ce que je ne comprends pas aussi, c'est que à côté de ca, j'utilise cvCreateTrackbar sans problème de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
cvCreateTrackbar("trackbar1", windowName, &minRatio, 6, update);
avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
static void update(int pos)
{...
}
et là pas de soucis avec le CvTrackbarCallback. Comment ca se fait ?

Je vous remercie d'avance :-)