No no, no puedes poner un this en una definición. La estructura sería la siguiente:
Código C:
Ver originaltypedef struct {
int id; //identificador del thread
int pos;
char* cadena;
struct sockaddr_in conectado;
mioFrame* Clase; // Defino un puntero a mioFrame;
} mi_tipo;
mi_tipo mensaje;
mensaje.id = IdThread; // Rellenamos la estructura
//...
Clase = this; // Solo puedes usar el puntero this dentro de la clase
Una vez en el thread, puedes actuar como si de una estructura se tratase:
Código C:
Ver originalvoid* Hilo(void* parametro)
{
//...
parametro->Clase->Numero // accediendo a la variable "Numero" de la clase (nota, la variable debe ser publica).
}
Una buena práctica es, si no necesitas modificar la variable, declarala como privada y crear un método get():
Código C++:
Ver originalclass miFrame
{
private:
int MiVariable;
public:
int getMiVariable() { return MiVariable;}
};
Es una manera elegante de hacer un acceso de solo lectura:
Código C:
Ver originalvoid* Hilo(void* parametro)
{
//...
parametro->Clase->getNumero(); // accediendo a la variable "Numero" de la clase (nota, la variable debe ser publica).
}
Es una de las mayores ventajas de C++: El encapsulamiento, te impide que cometas errores.