Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4947
글쓴 사람
정성태 (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)
308정성태4/7/201013880[종료] DDR2 2GB 메모리 2개 드립니다.
307정성태4/5/201016208윈도우 7 64비트 환경에서 SoftCamp 키보드 보안 충돌나는 문제 해결 방법
306정성태3/23/201013272DAEMON 설치 실패 - This program requires at least Windows 2000 with SPTD 1.60 or higher.
305정성태3/10/201015116Step by Step: Windows 7에서 숨김 폴더, 파일, 파일 확장명 표시하기
304정성태2/10/201012167최근 연모가 실행 안되는 문제 [2]
303정성태2/9/201011619Step by Step: Windows 7에서 자주 쓰는 폴더 관리하기 [5]
302정성태1/17/201020323Microsoft Word 2007: [팁] 목차에 원치 않는 항목이 들어가는 문제 [2]
301정성태1/17/201015829Microsoft Word 2007로 매뉴얼 제작: (7) 문서 비교
300정성태1/17/201019204Microsoft Word 2007로 매뉴얼 제작: (6) 문서 버전 관리
299정성태1/17/201025164Microsoft Word 2007로 매뉴얼 제작: (5) 표, 그림의 번호 지정 [9]파일 다운로드1
298정성태1/17/201018740Microsoft Word 2007로 매뉴얼 제작: (4) 인덱스 구성 [3]파일 다운로드1
297정성태1/17/201026734Microsoft Word 2007로 매뉴얼 제작: (3) 목차 구성파일 다운로드1
296정성태1/17/201017322Microsoft Word 2007로 매뉴얼 제작: (2) 맞춤법 검사파일 다운로드1
295정성태1/17/201031885Microsoft Word 2007로 매뉴얼 제작: (1) 머리말, 꼬리말, 본문 기본 서식 지정 [3]파일 다운로드1
294정성태1/3/2010167802009년 인기 순위 정리
293정성태1/3/201012496UAC 모드에서 연모가 실행이 안된다면!
292정성태1/1/201014076플래시 영상이 IE 8에서 안 보이는 문제
291정성태12/26/200912979The Cranberries-Ode To My Family
289정성태12/11/200913034Windows 7 - 사용자가 선택한 "보안 하향"
288정성태12/10/200914284Windows Server 2008 R2 에서 Sticky Notes 사용 [1]
287정성태12/3/200914676일단락된 윈도 7 블랙 스크린 사건
286정성태12/2/200915755무선랜 보안 취약점과 대책
285정성태11/27/200919057새로운 노트북: Dell Studio 1557 - Core i7 820QM
284정성태11/24/200914538새로운 직장 [2]
283정성태11/24/200916120CD-ROM / DVD 없이 USB 만으로 Windows Vista / Windows 7 설치하기
282정성태11/21/200917214Windows Vista / 7에서 C$과 같은 관리 폴더를 공유하는 방법 [2]
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...