Microsoft 开发人员网络 > 论坛主页 > Visual C++ General > Date Type about NET_IF_NETWORK_GUID
提出问题提出问题
 

已答复Date Type about NET_IF_NETWORK_GUID

  • 2009年11月8日 4:27Leyond 用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     包含代码

    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

答案

  • 2009年11月8日 5:57«_Superman_»MVP用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     已答复包含代码
    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++)
    • 已标记为答案Leyond 2009年11月8日 8:01
    •  

全部回复

  • 2009年11月8日 5:57«_Superman_»MVP用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     已答复包含代码
    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++)
    • 已标记为答案Leyond 2009年11月8日 8:01
    •  
  • 2009年11月8日 8:01Leyond 用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌
     
    Thanks very much~
    Work and Smile