Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4931
글쓴 사람
정성태 (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)
420정성태10/10/20111307710월의 어느 멋진날에 - 김동규, 임금희 (사)김자경오페라단
419정성태9/15/201115065MSDN 구독자 대상으로 Windows 8 (Server / Client) Preview 버전 공개 [2]
418정성태9/11/201114135Adobe Acrobat Updater Failed Error 1625
417정성태8/26/201115955개발자 도구 스크립트 사용 안 함 메뉴 비활성 문제
416정성태8/24/201113600이런 댓글은 사양합니다. [5]
415정성태8/14/201114704NTFS 폴더에 매핑된 디스크를 삭제하는 방법 [2]
414정성태7/9/201113981커피 전문 브랜드 소개 - 로스터스 마크
413정성태7/8/201114339제 트위터에 적용해 본 소셜 키워드 그래프
412정성태5/28/201116017Windows Thin PC 관심 증가?
411정성태5/26/201118802Dell Studio 1557 - Hyper Threading 기능 제거 [1]
410정성태5/25/201120189인터넷 익스플로러 - FTP 파일 다운로드 오류
409정성태5/22/201124735KT 크린 아이에 의해서 차단된 웹 사이트 바로 잡기 [1]
408정성태5/18/201140467SoftCamp Secure KeyStroke 4.0 <vista> 무한 설치 시도 문제
407정성태5/16/201115054DisplayLink - Unable to save display settings
406정성태5/13/201113463제 웹 사이트가 Trend Micro - Internet Security 제품에서 악성 사이트로 분류되고 있습니다. [3]
405정성태4/23/201116935디스크 사용량과 파일 사용량이 틀린 경우 [1]
404정성태4/23/201119988WACOM 태블릿 - 풍선 도움말(Ctrl, Shift...) 없애는 방법 [4]
403정성태4/23/201120037윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서"로 생성되는 기본 파일 변경파일 다운로드1
401정성태4/22/201118438윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서" 메뉴가 없는 경우파일 다운로드1
402정성태4/22/201116779    답변글 txt 파일을 탐색기에서 열 때, 메모장으로 열리지 않는 문제
400정성태4/18/201113355샐리던트!
399정성태4/6/201122232이런 질문 공세에 답변을 하실 수 있는 분...? [5]
398정성태3/29/201116189ATI 그래픽 카드가 장착된 컴퓨터에서 IE 9 동영상 재생 문제 [2]
397정성태3/28/201118716능엄주(Surangama mantra)를 외다, 채식을 하다
396정성태3/26/201121279비정상적인 "System Volume Information" 폴더 사용량
395정성태3/24/201117696윈도우 7/R2 - C 드라이브 용량이 부족해 SP1 설치가 안된다면?
1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...