Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 1669
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드

C#에서 Win32 API 연동을 위해 Interop 구조체를 docs 문서에서 참고했는데,

IORING_HANDLE_REF structure (ioringapi.h)
; https://learn.microsoft.com/en-us/windows/win32/api/ioringapi/ns-ioringapi-ioring_handle_ref

다음과 같은 형식으로 코드가 실려 있습니다.

typedef struct IORING_HANDLE_REF {
  void            IORING_HANDLE_REF(
    HANDLE h
  );
  void            IORING_HANDLE_REF(
    UINT32 index
  );
  IORING_REF_KIND Kind;
  union {
    HANDLE Handle;
    UINT32 Index;
  } HandleUnion;
  HandleUnion     Handle;
} IORING_HANDLE_REF;

저런 구문이 최근 C/C++ 표준에 가능해졌나... 하고 잠시 헤맨 끝에 결국 그냥 Windows SDK에 포함된 헤더 파일을 보고 저것이 docs 웹 사이트에 올려지는 과정에서 잘못 전처리된 코드라는 것을 알게 되었습니다. 즉, 원래는 이런 코드였던 것입니다.

typedef struct IORING_HANDLE_REF
{
    explicit IORING_HANDLE_REF(HANDLE h)
        : Kind(IORING_REF_KIND::IORING_REF_RAW)
        , Handle(h)
    {}

    explicit IORING_HANDLE_REF(UINT32 index)
        : Kind(IORING_REF_KIND::IORING_REF_REGISTERED)
        , Handle(index)
    {}

    IORING_REF_KIND Kind;
    union HandleUnion
    {
        HandleUnion(HANDLE h)
            : Handle(h)
        {}

        HandleUnion(UINT32 index)
            : Index(index)
        {}

        // Handle to the file object if Kind == IORING_REF_RAW
        HANDLE Handle;

        // Index of registered file handle if Kind == IORING_REF_REGISTERED
        UINT32 Index;
    } Handle;
} IORING_HANDLE_REF;

그러니, docs 문서를 너무 믿지 마세요. ^^









[최초 등록일: ]
[최종 수정일: 4/20/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
470정성태1/9/201416705Wacom BAMBOO 태블릿 - 클릭이 더블 클릭으로 처리되는 문제
469정성태1/2/201414981ATI - DVI에서 HDMI 케이블로 바꿨는데 화면 축소 현상
467정성태1/1/201416168개발자 여러분들에게 추천하는 상품 - 책상용 팔걸이 레스트보드(RESTBOARD) [4]
466정성태11/27/201317829제니퍼소프트는... [3]
464정성태11/5/201312744사파리 웹 브라우저의 메모리 leak 현상 [4]
463정성태10/31/201312071Adobe Reader로 PDF 파일 저장할 때 CPU 100%치는 현상
462정성태10/30/201315362우와~~~ 성태가 책을 썼습니다. ^^ [9]
461정성태9/19/201310975TED 강연 - Marla Spivak: Why bees are disappearing
460정성태8/14/201317215PC의 시간이 맞지 않는 경우, CMOS 배터리 교체 [2]
459정성태8/11/201312644TED 강연 - 에이미 커디(Amy Cuddy): 당신의 신체 언어가 자신의 모습을 결정한다.
458정성태5/11/201312600생각의 전환: 1. 개인 인공위성을 만든 미디어 아티스트 송호준 [3]
457정성태4/1/201315125삼성 노트북 - 고성능 전원 옵션에서 액정 화면이 어두운 경우
456정성태3/11/201314249재미있는 수학 문제 하나: x = y 일때 2 = 1 ? [3]파일 다운로드1
455정성태3/7/201316002윈도우 서버 2012에서 플래시가 동작하지 않는 경우
454정성태1/23/201312030네이버의 애드포스트 수익이 해피빈으로도 전환된다는 사실! 아시나요? [2]
453정성태1/23/201322282윈도우 8/2012 업데이트 후 Windows.old 폴더 삭제하는 배치 명령어 [6]
452정성태1/21/201322805시스템 트레이에 블루투스 아이콘 나오게 하는 방법 [1]
451정성태1/16/201311922세상을 바꾸는 노력 - 정치후원금
450정성태12/31/201212447유연한 개발자의 2013년 새해 인사 [7]
449정성태12/21/201219351새로운 노트북 - 삼성 센스 NT700Z5C-S88 크로노스 [2]
448정성태12/14/201215999유튜브(Youtube) 비디오 파일을 안전하게 다운로드 받는 방법 [1]
447정성태12/14/2012116524분짜리 Ad-Movie 입니다.
446정성태10/28/201230411오피스 2013 한글 버전 설치
445정성태10/24/201212248생애 처음으로 펀드를 하다. ^^
443정성태10/10/201214215HD 4500 그래픽 카드 및 Bamboo 펜에 대한 윈도우 8 문제 해결 [1]
442정성태9/26/20121878664GB 램을 가진 새로운 작업 PC [6]
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...