Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사],
조회: 15779
글쓴 사람
정성태 (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)
504정성태9/25/201631638모니터 3대를 NVidia Surround로 연결하기 - 두 번째 [3]
503정성태9/22/201624502Wacom BAMBOO 태블릿 - Tablet PC Defined 메뉴가 없는 경우 [1]
501정성태5/31/201624124twoomail.com으로부터 온 "'...'님이 쪽지를 보냈습니다."는 twoo.com의 스팸 메일입니다.
499정성태2/16/2016260102016년 작업 PC ^^ [2]
498정성태12/17/201521571BTN 앱에서 법문에 대한 댓글을 작성하는 방법
497정성태10/2/201529563NVIDIA Surround 설정/해제를 간편하게 하는 방법?
496정성태9/30/201526148도서 - 누워서 읽는 알고리즘 [1]
495정성태9/3/201524446도서 - Embedded Recipes [2]
494정성태8/21/201525704마이크로소프트 워드 문서에서 위/아래 첨자 단어 검색하는 방법 [2]
493정성태8/11/201522878XBox One의 헤일로 게임 ^^ [2]
492정성태6/1/201525362윈도우 10 무료 업그레이드 예약 시작
491정성태5/9/201529466hiberfil.sys 파일의 위치를 옮길 수 있을까요?
489정성태3/24/201527219파티션 관리 프로그램 추천 - MiniTool Partition Wizard
488정성태3/20/201543658유튜브(youtube) 동영상을 다운로드하는 프로그램 youtube-dl 소개 [14]
487정성태2/19/201539880미라캐스트 vs 크롬캐스트파일 다운로드1
486정성태2/11/201527488성태도 해본 ^^ PC-Fi 구성 [2]파일 다운로드1
484정성태10/5/201439220GTX660으로 모니터 3대를 Surround로 연결(5760*1080 해상도) [3]
483정성태9/17/201449695비트코인 지갑 생성 및 채굴 방법 [5]
482정성태7/28/201429265질문/답변 게시물이 일부 폭파되었습니다. [9]
481정성태7/2/201431241한국장학재단(www.kosaf.go.kr) 서류 제출의 첨부 파일 등록 안되는 문제 [5]
480정성태6/11/201423986국내 미러링 사이트의 존재 이유가??? [2]
479정성태5/10/201427066IITC 도구 - Ingress의 Link/Field를 확인하는 방법 [4]
478정성태4/1/201422392일본 출장 시 남긴 오사카의 Ingress 필드
477정성태1/25/201423927세바시 335회 그래, 여기까지 잘 왔다 @김창옥 서울여대 기독교학과 겸임교수
476정성태1/21/201426155세상에 단 하나 뿐인 C# 머그컵 [2]
475정성태1/19/201424274차에 블랙박스 꼭 달으세요. ^^ [2]
1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...