Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/09/2013, 15:40
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Convertir tipos de datos a DWOR y WCHAR

Pues eso, obtienes una lista de BYTE que traducido significa que obtienes una lista de unsigned char, como sabemos que unsigned char soporta entre 0 y 255, y que obtienes la mac en decimales solo has de tratar cada unsigned char como entero.


"...entonces quiero convertir cada valor..."

Los valores son los mismos en decimal que en hexadecimal (no puedes convertir un valor a un mismo valor), lo que cambia es la representacion; lo que quieres es representar el entero decimal como hexadecimal; tienes varias formas: la mas simple en tu caso ya que quieres guardarlo como cadena es usar el formateo de texto que provee la funcion sprintf, o lo haces manualmente para cada BYTE o usas un bucle

Código C:
Ver original
  1. char mac_address[18], str[3];
  2. int q;
  3.  
  4. memset(mac_address, 0, sizeof(mac_address));
  5. for(q = 0; q < 6; q++) {
  6.     sprintf(str, "%x", pAdapterInfo->Address[q]);
  7.     if(q) {
  8.         strcat(mac_address, ":");
  9.     }
  10.     strcat(mac_address, str);
  11. }

(nota: en el ejemplo supongo que la direccion mac siempre tendrá 6 valores representados por 2 digitos hexadecimales (12), con un separador entre valores (5), mas un nulo para representarlo como texto (1)).

Saludos
vosk