Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사],
조회: 6079
글쓴 사람
정성태 (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)
368정성태12/12/201023136새로운 취미 ^^ - 레고 마인드스톰 (LEGO Mindstorms) [2]
365정성태11/30/201016646프로그래머라면! [3]파일 다운로드2
364정성태11/27/201012899성태의 트위터 정책 ^^ (Follow/Unfollow) [2]
361정성태11/21/201014657Microsoft Wireless Mobile Mouse 6000과 Arc Mouse에 대해서! [2]
359정성태11/16/201012710내가 숨쉬는 공기 - The Air I Breathe
358정성태10/30/201013952너무 어렵게 생각하지 마세요. ^^
356정성태10/25/201013055Windows Live Messenger 2011 크기 줄이는 방법
355정성태10/22/201012471TechMatch: 마이크로소프트 LCA와 MVP가 함께 NGO 단체를 대상으로 기술적인 문제를 해결
354정성태10/18/201031429윈도우 7 홈 프리미엄(Home Premium) 버전에서 "로컬 보안 정책 (secpol.msc)" 설정 [1]
352정성태10/11/201012808SEO 와 ASP.NET(JSP,ASP) / Silverlight(Flash) / Ajax
351정성태10/10/201014223구글 크롬이 클릭원스 배포였군요. ^^
350정성태10/5/201014686[종료] Visual Studio 2010 Ultimate with MSDN 구독권 1개를 드립니다. [2]
349정성태9/26/201012776How To Become A Famous Blogger
348정성태9/19/201015474cmd.exe와 command.exe의 차이점파일 다운로드1
347정성태9/17/201012905IE 9 베타 - 바로가기 창(즐겨찾기 모음)
346정성태9/17/201014564Internet Explorer 9 베타와 ActiveX, 그리고 플래시
345정성태9/13/201011958소프트웨어 패키지 스페셜리스트(Software Package Specialist)?
344정성태9/7/201015766윈도우 7 백업 오류: 0x80780048 [2]
343정성태8/31/201012501Why Embedded has become cool (again)
342정성태8/29/20101618024GB 메모리 ^^
341정성태8/19/201030172노트북과 연결되는 외부 LCD 모니터의 "Power Saving Mode" 탈출 방법 [1]
340정성태8/5/201012782Outlook 2007 블루 스크린 뜨는 문제
339정성태8/4/201015709모르나의 기도문
338정성태8/4/201011840Twitter ^^ - @techsharer
337정성태8/1/201014756컴퓨터 먼지 제거 [2]
336정성태7/26/201012103Step by Step: 암호화된 파일에 액세스가 안 될 경우 해결 방법
1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...