Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2013, 08:03
williamfj
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 0
Pthread tipo c -> c++

Hola de nuevo...continuando con el tema de los pthreads traigo una duda desde hace tiempo, la cual es como puedo hacer que un pthread del tipo void *cliente_hilo( void *host1 ); sea miembro de una clase. Esto lo necesito porque conozco mas de C que de C++ por lo cual en mis programas que desarrollo con wxwidgets junto con codeblocks uso C++ únicamente para el ambiente grafico el formulario las cajas de texto, los combos pero la parte funcional generalmente está hecha en C normal pero he encontrado algunas dificultades al no poder hacer mi función phtread miembro del formulario principal ...problemas que he solucionado usando variables globales para comunicarme con los objetos contenidos en el formulario .pero es muy tedioso motivo por el cual hago esta pregunta..
Al declarar la funcion dentro de la calse formulario principal de esta manera

class mioFrame: public wxFrame
{
public:

mioFrame(wxWindow* parent,wxWindowID id = -1);
virtual ~mioFrame();
void *cliente_hilo( void *host1 );
......
}
Obtengo el siguiente error..

error: argument of type 'void* (mioFrame::)(void*)' does not match 'void* (*)(void*)'|

Al invocarla de esta manera.

pt=pthread_create(&hilo, NULL,cliente_hilo, host11);

Aclaro que la función anterior trabaja perfectamente al declararla fuera de la clase.
Sé que wxwidgets tiene clases pthread que pienso aprender a manejar pero de momento necesito una solución más cercana ya que el programa funciona, solo que no me parece "elegante" la manera como lo hago trabajar al no poder declarar la función hilo dentro de la clase principal.