Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4866
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 16  17  18  [19] 
NoWriterDateCnt.TitleFile(s)
46정성태11/14/200510341사진 2장.^^ [1]
43정성태9/13/200510386"DLL은 하나의 스레드" ( 어느 자바 개발자 2명으로부터. )
44서용혁9/21/20059490    답변글 [^^]: "DLL 은 하나의 스레드" ( 어느 자바 개발자 2명으로부터. ) [1]
41정성태4/14/20059907프로그램하다 보면. ^^
39정성태3/31/200510424내가 기대하는 Internet Explorer 7.0 버전
40정보문4/1/200511022    답변글 [답변]: 내가 기대하는 Internet Explorer 7.0 버전
35정성태3/9/20059455언젠가 읽었던 시
34정성태3/4/200511420왜 국내 MS 개발자들은 J++, J# 안쓰나요???
32정성태2/23/20058925기지개
31정성태2/21/200512910웨스턴 디지털 하드 ... 불안하네요. ^^;
30정성태1/3/200510801블로그... 모르시는 분? ^^ [2]
37정성태3/13/20059800    답변글 RSS Reader 변경 [5]
56정성태12/12/20059309    답변글 연모 버그 2개
29정성태12/24/20049671SATA 하드 160GB와 메모리 1GB 추가.
28정성태11/14/200510378My Ferrari 3400
24정성태11/14/20059845MS Tech-Ed 2004 행사장에서 사진 2장. ^^ [1]
... 16  17  18  [19]