Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4863
글쓴 사람
정성태 (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)
336정성태7/26/201011468Step by Step: 암호화된 파일에 액세스가 안 될 경우 해결 방법
335정성태7/26/201013020어느 대학의 IT 교재
334정성태7/22/201015435마이크로소프트 웹 사이트 연결이 안될 때 [1]
333정성태7/19/201021257SYSTEM에 의해서 파일이 잠기는 현상
332정성태7/18/201012910누가 Internet Explorer의 보안을 낮췄을까?
331정성태7/15/201019780네이버우클릭+복사방지 해제방법
330정성태7/12/201020789탐색기에서 끌기(Drag) 동작이 안될 때
329정성태7/6/201014026[종료] Visual Studio 2010 Ultimate with MSDN 구독권 1개를 드립니다. [3]
328정성태7/4/201017243유튜브(Youtube) 동영상을 파일로 저장하는 방법
327정성태6/23/201013752Ho'oponopono
326정성태6/5/201015620쓸만한 노트북 쿨러 추천
325정성태5/30/201013067Pokarekare Ana, You Raise Me Up ...
322정성태5/17/201011888PC 에 먼지 제거하세요. 블루스크린 뜹니다. ^^
321정성태5/17/201015981Youtube(유튜브) 버퍼링 문제 해결 [1]
320정성태5/16/201012286처음 가본 오대산...
319정성태5/16/201013717미국 ‘일하고 싶은 직장 1위’ SAS 가보니…
318정성태5/12/201011989드라마보다 더 드라마틱한 게임 유저들의 이야기 [2]
317정성태5/12/201012942제니퍼소프트 - 제니퍼 닷넷 출시 기자간담회 [2]
316정성태5/8/201024706Windows 7 64비트 + IE 8에서의 알패스 "자동 채움" 동작시키기
315정성태5/8/201012661우리 집 창밖 풍경! [2]
314정성태5/4/201014915Step by Step: "테스트 모드 Windows 7 빌드 7600"가 표시된다
313정성태4/30/201011451The 15 most toxic places to live
312정성태4/30/201011098하이브리드카 사 봐야 본전 뽑기도 어렵다
311정성태4/24/201014075SSD 달린 새 컴퓨터 ^^ [1]
309정성태4/13/201025950ATI Radeon에서 HDMI 연결 시 1080p 화면이 축소되는 경우 해결책 [1]
308정성태4/7/201013756[종료] DDR2 2GB 메모리 2개 드립니다.
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...