SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: arvsander8 en Sábado 18 de Octubre de 2008, 18:30
-
Hola a la gente del foro,
Tengo una consulta, estoy trabajandon con opencv y c++, y probe unos ejemplos de trackbar que me funcionan correctamente, pero al adecuarlo dentro de una clase me sale este error en el cvCreateTrackbar
cvCreateTrackbar( tbarname, wndname, &tr->edge_thresh, 255,(tr->on_trackbar ));
ERROR: cannot convert parameter 5 from 'void (int)' to 'void (__cdecl *)(int)'
Si alguien tiene alguna idea se lo agradeceria mucho
-
Seguramente tengas hacer el metodo on_trackbar estatico ya que los callbacks no pueden pasarte el valor del objeto this.
-
gracias por la respuesta
Efectivamente tuve q crear una funcion global para el on_trackbar la que llama recien a mi funcion en la clase.
Aun que esto no es una solucion optima puede servir.
De todos modos me gustaria saber si de alguna forma se podria trabajar esta funcion dentro de la clase, ya que tengo problemas al pasar parametros desde mi clase a la funcion global.
Nos vemos
-
Podes usar un metodo de la clase pero tiene que ser ESTATICO y por lo tanto carecer de this, normalmente las funciones de callback permiten pasar un parametro que es justamente el objeto en cuestion y despues la funcion de callback recibe y puede trabajar con el usando un casting pero no veo donde se pueda hacer con esta funcion (cvCreateTrackbar). Salvo que ese int que recibe on_trackbar sea para ese proposito ...
-
Gracias nuevamente por la aclaracion
El int q recibe justamente es el que permite el casting
Ahora empezare a probar con el metodo estatico
Gracias nuevamente y cualquier duda tambien estoy para servir.