Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사],
조회: 9242
글쓴 사람
정성태 (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)
87정성태7/10/200610799머리 좀 식히시지요. 파일 다운로드1
86정성태7/4/200611488검색 엔진에서의 "정성태"
84정성태6/20/200611492Is it wrong to Love Microsoft?
81정성태5/21/200611143S-ATA II 300GB 하드 디스크 장착. ^^
78정성태5/5/200611372Introduction to Programming LEGO MINDSTORMS
76정성태4/9/200612079DevDays 2006 행사에서... [4]
75정성태3/29/200611664노트북 메모리 2GB로 업그레이드 [1]
80정성태5/18/200612434    답변글 Insufficient System Resources Exist to Complete the API
74정성태3/25/200613333재미있는 로그들.
73정성태3/27/200612959This Page Is Valid XHTML 1.0 Transitional!
71정성태3/16/200612553영어 공부 열심히. [1]
70정성태3/13/200611282MSDN Magazine 2006년 2월호의 표지에 실린 멋진 코드. ^^ [1]
69정성태3/10/200611511휴대폰 컬러링 변경. ^^v - "난 나직이 그의 이름을 불러 보았어"
68정성태3/2/200612595우리집 무선 Access Point - GN-B49G
67정성태3/1/200610852지금은 서울역... ^^
66정성태2/27/200610882MS, 윈도 XP용 웹 콘텐츠 필터링 SW 개발
63정성태2/12/200610993서비스 불안정 [2]
61정성태2/4/200612438새로나온 calc.exe
60정성태2/4/200611160FW: 멋진 시도 그리고 멋진 작품
59정성태1/26/200610701질문은 이렇게 해주십시오.
54정성태12/3/200510498블로그의 출처...
53정성태11/20/200511010내 모든 토픽의 꼬리말로 달고 싶은 말
51정성태11/5/200510564저는... 모든 사람들이... [1]
48정성태10/19/200510728VSTS 와 함께 나온 "개발자 송" - .NETXPERT 5명 참가. ^^; [2]
47정성태10/10/200510902(일기는 아니지만) MSDN Magazine 같이 공부하실 분... 2차 모집합니다. ^^ [8]
46정성태11/14/200511247사진 2장.^^ [1]
... 16  17  [18]  19