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?