Microsoft Developer Network > 포럼 홈 > 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