Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4893
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... [16]  17  18  19 
NoWriterDateCnt.TitleFile(s)
145정성태5/18/20071369822" LCD 모니터 사용 [4]
144정성태5/15/200712199개발자와 데스크톱 시스템 [2]
143정성태5/12/200711868경쟁 관계
142정성태5/10/200713264IE 7 이미지 다운로드 버그 [2]
141정성태5/8/200712526Windows Vista와 Me를 비교?
140정성태4/28/200712509구글 애드센스 적용 [2]
139정성태4/11/200712911Vista for x64를 지원하는 KTF iPlug
138정성태4/11/200712492"올인올 Alt+Click 사전" 과 IE 7 의 충돌
136정성태3/20/200712317C# for kids [1]
135정성태3/16/2007116512007 Microsoft MVP Global Summit 후기 [2]
134정성태3/14/200712978우와... ^^ 해킹 테스트를 하신다는 분이 나왔습니다.
133정성태3/12/200716322D820 노트북 ^^ [2]
132정성태3/9/200712024MVP Global Summit 참석
131정성태3/3/200712601Over the rainbow [1]
130정성태2/17/200712038재미있는 토픽 하나.
129정성태2/17/200711807Software Engineer
127정성태2/6/200711716 Creative Commons License [2]
128정성태2/6/200711484    답변글 [답변]: Creative Commons License
126정성태2/1/200711560사인을 받기 전.
125정성태1/26/200711774블로그 기능 업데이트 [1]
123정성태1/18/200711261ZDNet Korea...블로거, 건강에 빨간 불 [2]
121정성태1/11/200712597재미있는 로그들 - 2탄
124정성태2/7/200711612    답변글 재미있는 로그들 - 2탄
118정성태1/7/200711969내가 좋아하는 블로그 사이트 유형... [4]
117정성태1/4/200711404오류 보고 대화창이 뜨면... 여러분의 다음 행동은?
116정성태12/20/200612889SKT HSDPA 모뎀... [1]
... [16]  17  18  19