Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 1627
글쓴 사람
정성태 (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)
442정성태9/26/20121875364GB 램을 가진 새로운 작업 PC [6]
441정성태9/11/201219748윈도우 8 백업 오류 - 0x800700E1
440정성태8/23/201213156책 - 네트워크 속의 유령
439정성태8/22/201215013IE 9의 명령모음 아이콘과 탭의 크기를 크게 조정하는 방법
438정성태8/15/201222321ATI 디바이스 드라이버 업데이트 후 모니터 화면 축소 현상
437정성태8/15/201213506여전히 유니코드를 지원하지 않는 프로그램들... [1]
436정성태8/14/201213287Dell Studio 1557의 netw5v64.sys BSOD 문제
435정성태4/27/201212443목을 꺽게 만드는 e-Book 리더 [1]
434정성태4/16/201211588"Cliplets" 라는 프로그램을 이용하면 이런 동영상이 가능합니다. ^^
433정성태4/11/201210791Now N New (지금 다시 하나 되어) - 하나되어 (Official Music Video)
432정성태4/3/201211399영문 Project Euler 웹 사이트의 첫 페이지에 모습을 보이다 ^^
431정성태3/13/201212186이제는 레어 아이템이 되어 버린 아이태니엄 서버
430정성태3/10/20129915[Live]박정현(LENA PARK) - 꿈에(In Dream)(in Loveletter) [2]
429정성태3/7/201211125우와~~~ 제 블로그가 일 방문자 4천 명을 넘었습니다. [3]
428정성태2/5/201218988C# 언어 ... 좋은데... 정말 좋은데... 뭐라 표현할 말이 없네... ^^ [4]
427정성태1/24/201215322일단... "Project Euler @kr" 88번까지 완료! ^^ [2]
426정성태1/22/201212040웹 표준의 남용? [2]
425정성태1/2/201211238송현 시인의 '법정스님께서 감동한 유서와 불살생'
424정성태12/21/201110745iPad의 Safari에서 특수 기호를 포함한 웹 페이지를 방문하는 경우 비정상 렌더링 [1]
423정성태12/19/20119891100% 마음에 드는...? [2]
422정성태11/8/201113484DoS 공격(?) 수준의 검색 로봇 방문 [2]
421정성태10/18/20119927이사 - 3번의 방문, 4번의 계약 실패 [2]
420정성태10/10/20111094210월의 어느 멋진날에 - 김동규, 임금희 (사)김자경오페라단
419정성태9/15/201112860MSDN 구독자 대상으로 Windows 8 (Server / Client) Preview 버전 공개 [2]
418정성태9/11/201111862Adobe Acrobat Updater Failed Error 1625
417정성태8/26/201113621개발자 도구 스크립트 사용 안 함 메뉴 비활성 문제
1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...