Microsoft MVP성태의 닷넷 이야기
VC++: 22. IDL Library 절 [링크 복사], [링크+제목 복사],
조회: 18709
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 61  62  63  64  [65]  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12315정성태9/7/202019850개발 환경 구성: 510. Logstash - FileBeat을 이용한 IIS 로그 처리 [2]
12314정성태9/7/202020061오류 유형: 645. IIS HTTPERR - Timer_MinBytesPerSecond, Timer_ConnectionIdle 로그
12313정성태9/6/202019568개발 환경 구성: 509. Logstash - 사용자 정의 grok 패턴 추가를 이용한 IIS 로그 처리
12312정성태9/5/202026510개발 환경 구성: 508. Logstash 기본 사용법 [2]
12311정성태9/4/202019117.NET Framework: 937. C# - 간단하게 만들어 보는 리눅스의 nc(netcat), json_pp 프로그램 [1]
12310정성태9/3/202018433오류 유형: 644. Windows could not start the Elasticsearch 7.9.0 (elasticsearch-service-x64) service on Local Computer.
12309정성태9/3/202017603개발 환경 구성: 507. Elasticsearch 6.6부터 기본 추가된 한글 형태소 분석기 노리(nori) 사용법
12308정성태9/2/202019479개발 환경 구성: 506. Windows - 단일 머신에서 단일 바이너리로 여러 개의 ElasticSearch 노드를 실행하는 방법
12307정성태9/2/202020367오류 유형: 643. curl - json_parse_exception / Invalid UTF-8 start byte
12306정성태9/1/202017594오류 유형: 642. SQL Server 시작 오류 - error code 10013
12305정성태9/1/202019455Windows: 172. "Administered port exclusions"이 아닌 포트 범위 항목을 삭제하는 방법
12304정성태8/31/202017917개발 환경 구성: 505. 윈도우 - (네트워크 어댑터의 우선순위로 인한) 열거되는 IP 주소 순서를 조정하는 방법
12303정성태8/30/202018203개발 환경 구성: 504. ETW - 닷넷 프레임워크 기반의 응용 프로그램을 위한 명령행 도구 etrace 소개
12302정성태8/30/202018342.NET Framework: 936. C# - ETW 관련 Win32 API 사용 예제 코드 (5) - Private Logger파일 다운로드1
12301정성태8/30/202017895오류 유형: 641. error MSB4044: The "Fody.WeavingTask" task was not given a value for the required parameter "IntermediateDir".
12300정성태8/29/202018267.NET Framework: 935. C# - ETW 관련 Win32 API 사용 예제 코드 (4) CLR ETW Consumer파일 다운로드1
12299정성태8/27/202018874.NET Framework: 934. C# - ETW 관련 Win32 API 사용 예제 코드 (3) ETW Consumer 구현파일 다운로드1
12298정성태8/27/202018439오류 유형: 640. livekd - Could not resolve symbols for ntoskrnl.exe: MmPfnDatabase
12297정성태8/25/202017970개발 환경 구성: 503. SHA256 테스트 인증서 생성 방법
12296정성태8/24/202019136.NET Framework: 933. C# - ETW 관련 Win32 API 사용 예제 코드 (2) NT Kernel Logger파일 다운로드1
12295정성태8/24/202017949오류 유형: 639. Bitvise - Address is already in use; bind() in ListeningSocket::StartListening() failed: Windows error 10013: An attempt was made to access a socket ,,,
12293정성태8/24/202018925Windows: 171. "Administered port exclusions" 설명
12292정성태8/20/202021887.NET Framework: 932. C# - ETW 관련 Win32 API 사용 예제 코드 (1)파일 다운로드2
12291정성태8/15/202018823오류 유형: 638. error 1297: Device driver does not install on any devices, use primitive driver if this is intended.
12290정성태8/11/202020078.NET Framework: 931. C# - IP 주소에 따른 국가별 위치 확인 [8]파일 다운로드1
12289정성태8/6/202017023개발 환경 구성: 502. Portainer에 윈도우 컨테이너를 등록하는 방법
... 61  62  63  64  [65]  66  67  68  69  70  71  72  73  74  75  ...