Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4892
글쓴 사람
정성태 (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)
446정성태10/28/201233146오피스 2013 한글 버전 설치
445정성태10/24/201214811생애 처음으로 펀드를 하다. ^^
443정성태10/10/201217034HD 4500 그래픽 카드 및 Bamboo 펜에 대한 윈도우 8 문제 해결 [1]
442정성태9/26/20122170464GB 램을 가진 새로운 작업 PC [6]
441정성태9/11/201222742윈도우 8 백업 오류 - 0x800700E1
440정성태8/23/201215822책 - 네트워크 속의 유령
439정성태8/22/201217769IE 9의 명령모음 아이콘과 탭의 크기를 크게 조정하는 방법
438정성태8/15/201225345ATI 디바이스 드라이버 업데이트 후 모니터 화면 축소 현상
437정성태8/15/201216580여전히 유니코드를 지원하지 않는 프로그램들... [1]
436정성태8/14/201216193Dell Studio 1557의 netw5v64.sys BSOD 문제
435정성태4/27/201215014목을 꺽게 만드는 e-Book 리더 [1]
434정성태4/16/201214162"Cliplets" 라는 프로그램을 이용하면 이런 동영상이 가능합니다. ^^
433정성태4/11/201213297Now N New (지금 다시 하나 되어) - 하나되어 (Official Music Video)
432정성태4/3/201214471영문 Project Euler 웹 사이트의 첫 페이지에 모습을 보이다 ^^
431정성태3/13/201214947이제는 레어 아이템이 되어 버린 아이태니엄 서버
430정성태3/10/201212553[Live]박정현(LENA PARK) - 꿈에(In Dream)(in Loveletter) [2]
429정성태3/7/201214074우와~~~ 제 블로그가 일 방문자 4천 명을 넘었습니다. [3]
428정성태2/5/201222329C# 언어 ... 좋은데... 정말 좋은데... 뭐라 표현할 말이 없네... ^^ [4]
427정성태1/24/201218386일단... "Project Euler @kr" 88번까지 완료! ^^ [2]
426정성태1/22/201214850웹 표준의 남용? [2]
425정성태1/2/201214127송현 시인의 '법정스님께서 감동한 유서와 불살생'
424정성태12/21/201113348iPad의 Safari에서 특수 기호를 포함한 웹 페이지를 방문하는 경우 비정상 렌더링 [1]
423정성태12/19/201112281100% 마음에 드는...? [2]
422정성태11/8/201115887DoS 공격(?) 수준의 검색 로봇 방문 [2]
421정성태10/18/201112093이사 - 3번의 방문, 4번의 계약 실패 [2]
420정성태10/10/20111303410월의 어느 멋진날에 - 김동규, 임금희 (사)김자경오페라단
1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...