Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 1675
글쓴 사람
정성태 (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)
333정성태7/19/201018619SYSTEM에 의해서 파일이 잠기는 현상
332정성태7/18/201010024누가 Internet Explorer의 보안을 낮췄을까?
331정성태7/15/201017392네이버우클릭+복사방지 해제방법
330정성태7/12/201018452탐색기에서 끌기(Drag) 동작이 안될 때
329정성태7/6/201011622[종료] Visual Studio 2010 Ultimate with MSDN 구독권 1개를 드립니다. [3]
328정성태7/4/201015014유튜브(Youtube) 동영상을 파일로 저장하는 방법
327정성태6/23/201011238Ho'oponopono
326정성태6/5/201012901쓸만한 노트북 쿨러 추천
325정성태5/30/201010663Pokarekare Ana, You Raise Me Up ...
322정성태5/17/20109796PC 에 먼지 제거하세요. 블루스크린 뜹니다. ^^
321정성태5/17/201013867Youtube(유튜브) 버퍼링 문제 해결 [1]
320정성태5/16/201010268처음 가본 오대산...
319정성태5/16/201011625미국 ‘일하고 싶은 직장 1위’ SAS 가보니…
318정성태5/12/20109889드라마보다 더 드라마틱한 게임 유저들의 이야기 [2]
317정성태5/12/201010422제니퍼소프트 - 제니퍼 닷넷 출시 기자간담회 [2]
316정성태5/8/201021888Windows 7 64비트 + IE 8에서의 알패스 "자동 채움" 동작시키기
315정성태5/8/201010289우리 집 창밖 풍경! [2]
314정성태5/4/201012766Step by Step: "테스트 모드 Windows 7 빌드 7600"가 표시된다
313정성태4/30/20109239The 15 most toxic places to live
312정성태4/30/20108852하이브리드카 사 봐야 본전 뽑기도 어렵다
311정성태4/24/201011708SSD 달린 새 컴퓨터 ^^ [1]
309정성태4/13/201023313ATI Radeon에서 HDMI 연결 시 1080p 화면이 축소되는 경우 해결책 [1]
308정성태4/7/201011271[종료] DDR2 2GB 메모리 2개 드립니다.
307정성태4/5/201013782윈도우 7 64비트 환경에서 SoftCamp 키보드 보안 충돌나는 문제 해결 방법
306정성태3/23/201010930DAEMON 설치 실패 - This program requires at least Windows 2000 with SPTD 1.60 or higher.
305정성태3/10/201012919Step by Step: Windows 7에서 숨김 폴더, 파일, 파일 확장명 표시하기
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...