Microsoft Developer Network > Forenhomepage > Visual C++ General > Date Type about NET_IF_NETWORK_GUID
Stellen Sie eine FrageStellen Sie eine Frage
 

BeantwortetDate Type about NET_IF_NETWORK_GUID

  • Sonntag, 8. November 2009 04:27Leyond TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Enthält Code

    Hi~
       I want to read network interface GUID value using GetAdaptersAddresses function , and all related information will be returned in the structure IP_ADAPTER_ADDRESSES, NetworkGuid is one of its memebers.
      The codes:

    do {
            pAddresses = (IP_ADAPTER_ADDRESSES *) MALLOC(outBufLen);
            if (pAddresses == NULL) {
                printf
                    ("Memory allocation failed for IP_ADAPTER_ADDRESSES struct\n");
                exit(1);
            }
            dwRetVal =
                GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen);
            if (dwRetVal == ERROR_BUFFER_OVERFLOW) {
                FREE(pAddresses);
                pAddresses = NULL;
            } else {
                break;
            }
            Iterations++;
        } while ((dwRetVal == ERROR_BUFFER_OVERFLOW) && (Iterations < MAX_TRIES));
        if (dwRetVal == NO_ERROR) {
            // If successful, output some information from the data we received
            pCurrAddresses = pAddresses;
            while (pCurrAddresses) {
          printf("THe guid is %???", pCurrAddresses->NetworkGuid);//the type is
    }
    

    I don't know how to output the GUID values correctly, it should be like this: GUID: b568ee76-6d17-4a3a-a2f5-269c52fd6de7

    THX
    Leyond

Antworten

  • Sonntag, 8. November 2009 05:57«_Superman_»MVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     BeantwortetEnthält Code
    Try this -
    char szBuf[64];
    
    sprintf_s(szBuf, 64, "{%08x-%04x-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
        pCurrAddresses->NetworkGuid->Data1, pCurrAddresses->NetworkGuid->Data2, pCurrAddresses->NetworkGuid->Data3,
        pCurrAddresses->NetworkGuid->Data4[0], pCurrAddresses->NetworkGuid->Data4[1],
        pCurrAddresses->NetworkGuid->Data4[2], pCurrAddresses->NetworkGuid->Data4[3],
        pCurrAddresses->NetworkGuid->Data4[4], pCurrAddresses->NetworkGuid->Data4[5],
        pCurrAddresses->NetworkGuid->Data4[6], pCurrAddresses->NetworkGuid->Data4[7]);
    
    printf("%s", szBuf);


    «_Superman_»
    Microsoft MVP (Visual C++)
    • Als Antwort markiertLeyond Sonntag, 8. November 2009 08:01
    •  

Alle Antworten

  • Sonntag, 8. November 2009 05:57«_Superman_»MVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     BeantwortetEnthält Code
    Try this -
    char szBuf[64];
    
    sprintf_s(szBuf, 64, "{%08x-%04x-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
        pCurrAddresses->NetworkGuid->Data1, pCurrAddresses->NetworkGuid->Data2, pCurrAddresses->NetworkGuid->Data3,
        pCurrAddresses->NetworkGuid->Data4[0], pCurrAddresses->NetworkGuid->Data4[1],
        pCurrAddresses->NetworkGuid->Data4[2], pCurrAddresses->NetworkGuid->Data4[3],
        pCurrAddresses->NetworkGuid->Data4[4], pCurrAddresses->NetworkGuid->Data4[5],
        pCurrAddresses->NetworkGuid->Data4[6], pCurrAddresses->NetworkGuid->Data4[7]);
    
    printf("%s", szBuf);


    «_Superman_»
    Microsoft MVP (Visual C++)
    • Als Antwort markiertLeyond Sonntag, 8. November 2009 08:01
    •  
  • Sonntag, 8. November 2009 08:01Leyond TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Thanks very much~
    Work and Smile