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

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

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

IORING_HANDLE_REF structure (ioringapi.h)
; https://docs.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 문서를 너무 믿지 마세요. ^^









[최초 등록일: ]
[최종 수정일: 5/23/2022]

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)
542정성태6/8/2022314입력 포커스를 가져가는 응용 프로그램을 확인하는 방법 - FocusLogger
541정성태6/7/2022306특정 USB 장치가 인식이 안 되는 문제
540정성태5/25/2022354구글 검색 시 "ko-kr"이 아닌 "en-us"에 해당하는 자료 검색 방법
539정성태5/23/2022275문법에 맞지 않는 docs.microsoft.com의 C++ 소스 코드
538정성태5/18/2022367WACOM Intuos Pro PTH-660 사용 후기 (개발자 입장)
537정성태3/17/2022614eFriend Plus 설치 후 실행이 안 되는 문제가 발생한다면?
536정성태1/13/202215192021년 블로그 기부 수익 공개 ^^
535정성태11/25/202117222021년 새로운 PC
534정성태10/19/20211670파판14 - 에오르제아의 시간 알람을 위한 C# WinForms 응용 프로그램파일 다운로드1
533정성태10/6/20212415모바일 브라우저에서 "비공개 연결이 아닙니다." NET::ERR_CERT_AUTHORITY_INVALID 오류가 발생하는 현상 [1]
531정성태9/1/2021189316GB로도 모자란 근래의 개발 환경
530정성태7/27/20211158그동안 마이크로소프트 계정으로 가입한 웹 서비스 및 응용 프로그램을 알아내는 방법
529정성태7/18/20211141C:\$Windows.~BT 용도와 삭제하는 방법
528정성태7/17/20211278Logitech Webcam이 있는 경우, %LOCALAPPDATA%\temp\LWSDebugOut.txt 파일의 (무제한) 증가 현상
527정성태7/13/20211227Microsoft Edge의 뉴스 알림 창 끄는 방법
526정성태7/11/20213361AMD CPU를 장착한 컴퓨터에서 Windows 11을 위한 fTPM 활성화 방법
525정성태6/30/20211680저작권 표시 없는 상업적 사용 가능한 무료 아이콘 구하기 [1]
524정성태6/25/20212972Windows 11 설치를 가로막는 TPM 칩, 운이 좋다면 구매할 수 있습니다. [2]
523정성태5/3/20214537절전 모드로 내려가는 우분투 머신 [7]
522정성태9/16/202053682020년 작업 PC ^^ [7]
521정성태11/25/20195996[종료] "시작하세요. C# 8.0 프로그래밍" 책을 1만원에 판매합니다. (4권 한정) [2]
520정성태8/26/20193143Snagit 2019(Build 3847) 사용 시 Effect 변경 후 창을 닫는 시점에 응용 프로그램이 종료하는 현상
519정성태7/15/20194894youtube-dl.exe를 윈도우 샌드 박스에서 실행
518정성태7/1/20195559크로미움 기반의 Microsoft Edge 웹 브라우저... 쓸만하네요. ^^ [4]
517정성태5/16/20195124윈도 운영체제는 태생적으로 갖고 있는 문제들로 인해 아직도 매우 취약한 운영체제로 분류됩니다?!! [2]
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...