Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사],
조회: 5172
글쓴 사람
정성태 (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)
175정성태10/6/200714869BBC 뉴스를 파일로 녹음하는 방법 [2]
174정성태10/3/200712940x64 비스타에서 YBM 폰트 설치
172정성태10/1/200713855The Secret [2]
171정성태9/28/200712036구글의 차세대 사업 승부수는 ‘3D 가상현실’(?) [1]
170정성태9/28/200712606정작 마이크로소프트 스스로는 .NET Framework 을 얼마나 적용하고 있을까? [2]
169정성태9/20/200712039SyncToy 1.4와 비스타 64비트에서의 문제
166정성태9/7/200712530텍스트 편집기로서의 Visual Studio 사용 [2]
165정성태8/27/2007117106.4GB 하드 2개 처분
164정성태8/20/200713177D820 지문 인식 드라이버 - Vista x64
163정성태7/30/200712433에버런 출시일 8월 20일 [4]
162정성태7/18/200712636SSD(Solid State Drive) 의 성능 향상이 얼마나 될까? [2]
161정성태7/18/200712223Vista for x64에서의 페이징 파일 관리 문제
160정성태7/18/200712945지름의 자세가 이 정도는 되어야.
159정성태7/18/200715603D820 - 그래픽 카드 오버 클럭
158정성태7/12/200713066고민... 고민... UMPC... [4]
157정성태7/10/200713112주당 16시간 일하기
156정성태7/8/200713570Vista와 KTF iPlug: 메시지 관리
155정성태6/28/200712184백업! [1]
154정성태6/19/200712969Summer Nights
153정성태6/17/200712504내 직업...! [2]
152정성태6/15/200712250한글 IME 쓰는 방법.
151정성태6/15/200711934끌리는 UMPC들...
150정성태6/11/200711754donga.com[뉴스]-‘중퇴생’ 빌 게이츠 32년 만에 졸업장
149정성태6/10/2007122416.4GB 하드 2개 및 단면 512MB 메모리 처분
146정성태5/26/200712222일반인을 위한 프로그래밍
145정성태5/18/20071390522" LCD 모니터 사용 [4]
1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...