Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4946
글쓴 사람
정성태 (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)
499정성태2/16/2016177412016년 작업 PC ^^ [2]
498정성태12/17/201513576BTN 앱에서 법문에 대한 댓글을 작성하는 방법
497정성태10/2/201520113NVIDIA Surround 설정/해제를 간편하게 하는 방법?
496정성태9/30/201517288도서 - 누워서 읽는 알고리즘 [1]
495정성태9/3/201516688도서 - Embedded Recipes [2]
494정성태8/21/201517131마이크로소프트 워드 문서에서 위/아래 첨자 단어 검색하는 방법 [2]
493정성태8/11/201514780XBox One의 헤일로 게임 ^^ [2]
492정성태6/1/201515062윈도우 10 무료 업그레이드 예약 시작
491정성태5/9/201521326hiberfil.sys 파일의 위치를 옮길 수 있을까요?
490정성태4/15/201527229(가능한 정확한 발음의) 대불정능엄신주 [3]파일 다운로드2
489정성태3/24/201518854파티션 관리 프로그램 추천 - MiniTool Partition Wizard
488정성태3/20/201533681유튜브(youtube) 동영상을 다운로드 하는 프로그램 youtube-dl 소개 [14]
487정성태2/19/201530532미라캐스트 vs 크롬캐스트파일 다운로드1
486정성태2/11/201518395성태도 해본 ^^ PC-Fi 구성 [2]파일 다운로드1
484정성태10/5/201428479GTX660으로 모니터 3대를 Surround로 연결(5760*1080 해상도) [3]
483정성태9/17/201438821비트코인 지갑 생성 및 채굴 방법 [5]
482정성태7/28/201420035질문/답변 게시물이 일부 폭파되었습니다. [9]
481정성태7/2/201422250한국장학재단(www.kosaf.go.kr) 서류 제출의 첨부 파일 등록 안되는 문제 [5]
480정성태6/11/201416052국내 미러링 사이트의 존재 이유가??? [2]
479정성태5/10/201418198IITC 도구 - Ingress의 Link/Field를 확인하는 방법 [4]
478정성태4/1/201414275일본 출장 시 남긴 오사카의 Ingress 필드
477정성태1/25/201415756세바시 335회 그래, 여기까지 잘 왔다 @김창옥 서울여대 기독교학과 겸임교수
476정성태1/21/201417101세상에 단 하나 뿐인 C# 머그컵 [2]
475정성태1/19/201416048차에 블랙박스 꼭 달으세요. ^^ [2]
474정성태1/15/201423399Internet Explorer 11 - GDI 리소스 누수로 화면 깨짐 현상 [1]
473정성태1/14/201415305Google+ Hangouts 대신 예전의 구글톡(Google Talk)을 사용하고 싶다면? [1]
1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...