Microsoft MVP성태의 닷넷 이야기
VC++: 22. IDL Library 절 [링크 복사], [링크+제목 복사],
조회: 21094
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

  
부모글 보이기/감추기
[이 토픽은 제가 뉴스그룹에 했던 답변내용입니다.]

=============================================================
 
library 내부에서 정의되는 인터페이스 및 참조되는 외부 인터페이스들은 명시적으로 type library로 내보내지게 됩니다.
즉, library 외부에서 인터페이스를 정의하고 내부에 선언하지 않았다면 type library에는 누락되는 것이죠.

이로 인해, 명시된 인터페이스들이 type library에서 그대로 참조되긴 하지만... 아닐 수도 있는 유연성을 놓은 것입니다.
또한, 인터페이스 정의만 포함된 IDL 파일을 만들고 다른 IDL 파일에서 import(C++의 include 처럼)시켜서 컴파일 할 수 있습니다. library 블록은 두개 이상 나올 수 없기 때문에 그렇게 할 수는 없습니다.

... 그러고 보면,,, 진정한 재활용 측면에서 본다면, 인터페이스 정의되는 IDL 파일을 분리하고, 분리된 IDL 파일을 import시키는 type library 생성용 idl 파일을 두는 것을 생각해 볼수도 있겠습니다. (한번도 그렇게 해본 적이 없군요. ^^;)

좀 더 자세한 사항은.. "https://docs.microsoft.com/en-us/windows/win32/midl/midl-language-reference?WT.mc_id=DT-MVP-4038148"을 참조하십시오.

덕분에... 옛날 기억 떠올리면서 한번 보게 되었습니다.^^




      .NETXPERT http://www.dotnetxpert.com
      E-MAIL kevin@dotnetxpert.com
      My Blog https://www.sysnet.pe.kr

--------------------------------------------------------------------------
      MCSD.NET, MVP[VC++]

  "UhmTaiJoon" <c_user@hanmail.com> wrote in message news:E847D3F5-5BB6-4529-8748-BC3F8C964E95@microsoft.com...
  지금 CONNECTION POINTER 부분을 보고 있는데, 지금까지 본 샘플 소스들을 보면 이벤트에 대한 인터페이스는 libary
  내부에서 선언을 하더군요.

  connection pointer 인터페이스는 이렇게 작성하는 것이 정석인지요?

  그리고, 또 하나 의문이, 다른 인터페이스는 library에는 인터페이스만 선언만 명시가 되고, 인터페이스 정의은 library 키워드
  상단에 작성이 되어 있습니다.

  library 안에 선언만 하고, library 상단에 정의 한것과 library 내부에서 선언과 동시에 정의한 경우의 차이점은 무엇인가요?

  여러분들의 답변 부탁드리겠습니다.

  모두들 즐샾되세요 ^^;;


  --








[최초 등록일: ]
[최종 수정일: 7/10/2021]

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)
13883정성태2/12/20256679닷넷: 2317. C# - Memory Mapped I/O를 이용한 PCI Configuration Space 정보 열람파일 다운로드1
13882정성태2/10/20254652스크립트: 70. 파이썬 - oracledb 패키지 연동 시 Thin / Thick 모드
13881정성태2/7/20255155닷넷: 2316. C# - Port I/O를 이용한 PCI Configuration Space 정보 열람파일 다운로드1
13880정성태2/5/20257097오류 유형: 947. sshd - Failed to start OpenSSH server daemon.
13879정성태2/5/20256744오류 유형: 946. Ubuntu - N: Updating from such a repository can't be done securely, and is therefore disabled by default.
13878정성태2/3/20256495오류 유형: 945. Windows - 최대 절전 모드 시 DRIVER_POWER_STATE_FAILURE 발생 (pacer.sys)
13877정성태1/25/20255530닷넷: 2315. C# - PCI 장치 열거 (레지스트리, SetupAPI)파일 다운로드1
13876정성태1/25/20256962닷넷: 2314. C# - ProcessStartInfo 타입의 Arguments와 ArgumentList파일 다운로드1
13875정성태1/24/20254966스크립트: 69. 파이썬 - multiprocessing 패키지의 spawn 모드로 동작하는 uvicorn의 workers
13874정성태1/24/20256516스크립트: 68. 파이썬 - multiprocessing Pool의 기본 프로세스 시작 모드(spawn, fork)
13873정성태1/23/20254828디버깅 기술: 217. WinDbg - PCI 장치 열거파일 다운로드1
13872정성태1/23/20254508오류 유형: 944. WinDbg - 원격 커널 디버깅이 연결은 되지만 Break (Ctrl + Break) 키를 눌러도 멈추지 않는 현상
13871정성태1/22/20255212Windows: 278. Windows - 윈도우를 다른 모니터 화면으로 이동시키는 단축키 (Window + Shift + 화살표)
13870정성태1/18/20256392개발 환경 구성: 741. WinDbg - 네트워크 커널 디버깅이 가능한 NIC 카드 지원 확대
13869정성태1/18/20255186개발 환경 구성: 740. WinDbg - _NT_SYMBOL_PATH 환경 변수에 설정한 경로로 심벌 파일을 다운로드하지 않는 경우
13868정성태1/17/20254689Windows: 277. Hyper-V - Windows 11 VM의 Enhanced Session 모드로 로그인을 할 수 없는 문제
13867정성태1/17/20256978오류 유형: 943. Hyper-V에 Windows 11 설치 시 "This PC doesn't currently meet Windows 11 system requirements" 오류
13866정성태1/16/20257763개발 환경 구성: 739. Windows 10부터 바뀐 device driver 서명 방법
13865정성태1/15/20256597오류 유형: 942. C# - .NET Framework 4.5.2 이하의 버전에서 HttpWebRequest로 https 호출 시 "System.Net.WebException" 예외 발생
13864정성태1/15/20256524Linux: 114. eBPF를 위해 필요한 SELinux 보안 정책
13863정성태1/14/20254970Linux: 113. Linux - 프로세스를 위한 전용 SELinux 보안 문맥 지정
13862정성태1/13/20255699Linux: 112. Linux - 데몬을 위한 SELinux 보안 정책 설정
13861정성태1/11/20255993Windows: 276. 명령행에서 원격 서비스를 동기/비동기로 시작/중지
13860정성태1/10/20255358디버깅 기술: 216. WinDbg - 2가지 유형의 식 평가 방법(MASM, C++)
13859정성태1/9/20256447디버깅 기술: 215. Windbg - syscall 이후 실행되는 KiSystemCall64 함수 및 SSDT 디버깅
13858정성태1/8/20256720개발 환경 구성: 738. PowerShell - 원격 호출 시 "powershell.exe"가 아닌 "pwsh.exe" 환경으로 명령어를 실행하는 방법
1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...