• Martes 21 de Mayo de 2024, 07:24

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Wikiflo

Páginas: [1]
1
C++ Builder / Packetgetadapternames
« en: Jueves 23 de Septiembre de 2004, 12:50 »
Hola, estoy haciendo un programilla que muestra los adaptadores de red que hay instalados en la máquina. Para ello utilizo la funcion PacketGetAdapterNames que te da un buffer con los nombres y las descripciones de los adaptadores. LA funcion es tal que asi:

void __fastcall CAdaptador::ObtenerListaAdaptadores()
{
    DWORD Version,VersionM;
    char NombreAdaptador[1024];
    WCHAR NombreAdaptadorNT[1024];
    ULONG LongAdaptador=1024;
    WCHAR *temp, *temp1;
    char  *tempa, *temp1a;
    WCHAR ListaAdaptadoresNT[MaxNumAdaptadores][1024];

        Version=GetVersion();
        VersionM =  (DWORD)(LOBYTE(LOWORD(Version)));
        if (!(Version >= 0x80000000 && VersionM >= 4)) { // Windows NT/2000/XP
                PacketGetAdapterNames((PTSTR) NombreAdaptadorNT,&LongAdaptador);
                temp=NombreAdaptadorNT;
                temp1=NombreAdaptadorNT;
     while ((*temp!='\0')||(*(temp-1)!='\0')) {
   if (*temp=='\0') {
      memcpy(ListaAdaptadoresNT[NumAdaptadores],temp1,(temp-temp1)*2);
          WideToAsc((WCHAR *)ListaAdaptadoresNT[NumAdaptadores], ListaAdaptadores[NumAdaptadores]); // Convierte a ASCII string
     temp1=temp+1;
     NumAdaptadores++;
        }
   temp++;
     }
     SistemaNT = true;

  } else {  // Windows 95/98/ME
    PacketGetAdapterNames((PTSTR)NombreAdaptador,&LongAdaptador);
     tempa=NombreAdaptador;
     temp1a=NombreAdaptador;
     while ((*tempa!='\0')||(*(tempa-1)!='\0'))   {
   if (*tempa=='\0') {
     memcpy(ListaAdaptadores[NumAdaptadores],temp1a,tempa-temp1a);
     temp1a=tempa+1;
     NumAdaptadores++;
        }
   tempa++;
     }
     SistemaNT = false;
  }
}

lo que pasa es que al listarlos me sale "\\Device\\..." en un formato que no es muy
comprensible y quiero la descripcion (que saldria algo asi como "Etherlink model..."
) que sé que está en el buffer. ¿Cómo podría sacarlo?
Saludos.

2
C++ Builder / Extern Y New :s
« en: Martes 7 de Septiembre de 2004, 20:19 »
Hola. Estoy haciendo un programa que se encarga de analizar algunos protocolos, para lo cual utiliza, entre otros, un thread que va metiendo los paquetes que recoge de la tarjeta de red a una cola (clase ccola) y otro que los va sacando y procesando. En la definición de la cola he creado una variable extern de tipo ccola para que la puedan utilizar los dos, pero aquí viene la pregunta ¿tengo que hacer algun new en alguno de los módulos? ¿si lo hago en los dos se borrará la primera declaración?
Ayuda y gracias  :( .

Páginas: [1]