Hola de nuevo,
Cita:
Yo crearía x al crear Form1 y no con un evento de botón que puede ejecutarse o no a gusto del usuario. x debe ser un miembro de Form1 creado y que se destruya en el destructor de Form1.
|
he hecho lo que me has dicho:
Capturar *x; //variable global
void __fastcall TForm1::FormCreate(TObject *Sender)
{
x = new Capturar(); //crea el objeto
}
..
void __fastcall TForm1::Button4Click(TObject *Sender)
{
x->StopThreadPackets();
}
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete x;
}
vale, con esto si le doy al boton de parar sigue sin parar, pero me ha surgido una nueva duda:
en la class Capturar como indiqué anteriormente tengo en el .cpp:
ThreadPackets *miThread;//instancio globalmentre miThread
void Capturar::Funcion1()
{
//se abre el dispositivo
//selecciona el dispositivo a sniffar
miThread = new ThreadPackets(adhandle);
}
y en otro método:
void Capturar::StopThreadPackets()
{
miThread->Terminate();
}
puede que no termine porque al estar en métodos diferentes son dos objetos diferentes? aunque se hayan instanciado globalmente?
Cita:
Pon un punto de parada en miTrhead, para detectar si es tu objeto u otro el que ejecuta Terminate
|
me podrías decir cómo se hace eso? no controlo muy bien el tema de los puntos de ruptura, si es que te refieres a eso
gracias