Ver Mensaje Individual
  #3  
Antiguo 05-03-2008
Ziara Ziara is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Reputación: 0
Ziara Va por buen camino
Hola de nuevo, ante todo gracias por la pronta respuesta.

Cita:
Pienso que miThread pertenece a la clase Caputrar.
miThread lo tengo definido en el .h de la clase Capturar como:

Código:
class Capturar
{
 private:
           ...
           ThreadPackets *miThread;

 public: 
         ...
};
siempre que en la cabecera del .h tenga
Código:
#include "Unit4.h"
donde Unit4.h es donde tengo mi clase Thread llamado ThredPackets, así puedo usar miThread de forma global dentro de la clase Capturar.

Y más o menos entiendo lo que has mencionado:
Cita:
Form1 tenga un miembro de la clase Capturar ya creado de forma que no necesites crear uno nuevo para la función Button4Click
Ahora he modificado en el Form1 y tengo globalmente el objeto x, ya que lo llamo en dos ocasiones:

1. mediante un botón para empezar la captura de paquetes:
Código:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 x = new Capturar();
 x->Funcion1(); //aqui dentro es donde llega el momento de capturar llama a miThread = new ThredPackets(adhandle)

}
2.mediante un botón para terminar la captura:
void __fastcall TForm1::Button4Click(TObject *Sender)
{

x->StopThreadPackets();
delete snf;
}

Pero con esto tampoco va... y, cuando pruebo que el puntero miThread sea static en la clase Capturar y pongo en el .h:

Código:
class Capturar
{
 private:
           ...
           ThreadPackets static *miThread;

 public: 
         ...
};
me da un error de:

[Linker Error] Unresolved external 'Capturar::miThread' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\EXESC\BONITO(1.2)\UNIT3.OBJ

y sin static, me compila bien, seguramente no lo esté poniendo bien, me podeis dar más info sobre lo de poner el puntero static?
Responder Con Cita