Microsoft MVP성태의 닷넷 이야기
문법에 맞지 않는 learn.microsoft.com의 C++ 소스 코드 [링크 복사], [링크+제목 복사]
조회: 4934
글쓴 사람
정성태 (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)
201정성태4/11/2008118452008년 4월 10일 - IE ActiveX 활성화 패치 포함
200정성태4/4/200811927흔치 않은 불펌 사례 [2]
199정성태3/28/200811748Motion Portrait [1]
198정성태3/16/200812760다음 BGM 음악과 Windows Vista / Server 2008 호환성 문제
197정성태3/16/200813604Lineage2와 AMD x64
196정성태3/10/200812665FLV Player
195정성태3/8/200812841BGT 2007 - 폴 포츠에 대해 아시나요? [2]
194정성태2/21/200814753구글에 주민 등록 번호 검색 [5]
193정성태2/5/200813612What the Bleep Do We Know?
192정성태2/5/200813392XAML이 뭘까? [4]
190정성태2/1/200813062Windows Vista와 Me를 비교? - 두 번째 이야기
189정성태12/26/200712718You mean, you have computers in Taiwan?
188정성태12/16/200714710인기 순위 정리
187정성태12/9/200715552XPS(MXDW) 삭제 또는 재설치
186정성태12/5/20071248116TB 파일을 생성하는 데 걸린 시간. [2]
185정성태12/3/200712376Is OneNote for everyone?
184정성태11/25/200717415μTorrent - 다운로드 속도를 위한 업로드 속도 조정 [1]
183정성태11/25/200713321XP Home Edition이 Quad-Core CPU를 지원할까? [1]
182정성태11/9/200713117"아버지의 날" 이 있었나요?
181정성태11/4/200712952HSDPA Q1 Ultra 소식 [1]
180정성태11/4/20071688464비트 동영상 코덱 설치 [2]
179정성태10/26/200711701'아이폰'에는 얼마나 위험한 물질이 있는 걸까
178정성태10/10/200711925Petzold 아저씨(?)의 결혼 소식
177정성태10/8/200714115한글 주소를 영문 주소로 변환해 주는 서비스 [1]
176정성태10/6/200712611Podcasting with Windows Media Player
175정성태10/6/200714822BBC 뉴스를 파일로 녹음하는 방법 [2]
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...