Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Problemas con String^ y ArrayList

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Problemas con String^ y ArrayList

Notapor ZiCruz el Lun Abr 23, 2007 3:43 am

Hola a tod@s, en este código


public ref class Adaptador {
public:
...
property String^ Nombre;
...
}

________________________________________


Sniffer::Sniffer(void) {
int i = 0;
String^ msj;
pcap_if_t *tRed;
pcap_if_t *tarjetasRed;
char errBuffer[PCAP_ERRBUF_SIZE];
Adaptador^ adp;

// Obtenemos la lista de tarjetas de red de ordenador donde se ejecute.
int OK = pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &tarjetasRed, errBuffer);
if (OK == -1) {
msj = String::Concat("Error en pcap_findalldevs_ex:", gcnew String(errBuffer));
MessageBox::Show(msj, "Error en WinPcap", MessageBoxButtons::OK, MessageBoxIcon::Error);
//fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errBuffer);
}

for(tRed = tarjetasRed; tRed != NULL; tRed = tRed->next) {
msj = gcnew String(tRed->name);

adp->Nombre = msj;
if (tRed->description)
adp->Descripcion = gcnew String(tRed->description);
else
adp->Descripcion = "Sin descripcion";
// Object^ obj = safe_cast<Object>(adp);
Adaptadores.Add(adp);
//MessageBox::Show(msj, "Adptador de red", MessageBoxButtons::OK, MessageBoxIcon::Error);
i++;
}

// Se libera la lista de tarjetas de red obtenida anteriormente.
pcap_freealldevs(tarjetasRed);
} // FIN Sniffer(void)

en las sentencias subrayadas me da el siguiente error de ejecución:
"Excepción no controlada del tipo 'System.NullReferenceException' en Pruebas.exe"

Información adicional:Referencia a objeto no establecido como instacia del objeto"


¿¿¿¿¿como puedo revolverlo?????

Si cambio el código anterior por este otro (En cursiva están los cambios):

Sniffer::Sniffer(void) {
int i = 0;
String^ msj;
pcap_if_t *tRed;
pcap_if_t *tarjetasRed;
char errBuffer[PCAP_ERRBUF_SIZE];
Adaptador adp;

// Obtenemos la lista de tarjetas de red de ordenador donde se ejecute.
int OK = pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &tarjetasRed, errBuffer);
if (OK == -1) {
msj = String::Concat("Error en pcap_findalldevs_ex:", gcnew String(errBuffer));
MessageBox::Show(msj, "Error en WinPcap", MessageBoxButtons::OK, MessageBoxIcon::Error);
//fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errBuffer);
}

for(tRed = tarjetasRed; tRed != NULL; tRed = tRed->next) {
msj = gcnew String(tRed->name);

adp.Nombre = msj;
if (tRed->description)
adp.Descripcion = gcnew String(tRed->description);
else
adp.Descripcion = "Sin descripcion";
// Object^ obj = safe_cast<Object>(adp);
Adaptadores.Add(adp);
//MessageBox::Show(msj, "Adptador de red", MessageBoxButtons::OK, MessageBoxIcon::Error);
i++;
}

// Se libera la lista de tarjetas de red obtenida anteriormente.
pcap_freealldevs(tarjetasRed);
} // FIN Sniffer(void)

en la sentencia subyadada me da el siguiente error:


error C2664: 'System::Collections::ArrayList::Add' : no se puede convertir el parámetro 1 de 'Adaptador' a 'System::Object ^'

¿¿¿¿¿como puedo revolverlo?????

Muchas gracias.
ZiCruz
Novato
Novato
 
Mensajes: 15
Registrado: Mar Abr 10, 2007 1:35 am

Re: Problemas con String^ y ArrayList

Notapor latindeveloper el Mié Abr 25, 2007 9:13 pm

El lenguaje C# se parece muchisimo a Java, y tambien rigen las mismas reglas, una de ellas es que no puedes utilizar variables sin inicializarlas.

Debes utilizar las variables adp y Adaptadores.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Notapor ZiCruz el Jue Abr 26, 2007 12:47 am

gracias era eso
ZiCruz
Novato
Novato
 
Mensajes: 15
Registrado: Mar Abr 10, 2007 1:35 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados