본문 바로가기

[ Windows Program ]/ActiveX / COM

[COM] 32. ATL의 개요 (2) - ATL COM 객체 구현과 기반 클래스 궁극적으로 우리가 만들어야 할 것은 COM 사용 환경이 아니라 COM 객체이죠. 한번 만들어 보겠습니다. 1. 앞의 예에서 계속 사용 한 것 처럼 sayHello를 만들겠습니다. 인터페이스에 메서드를 추가 합니다. 2. 매개 변수 형식과 변수 특성 등을 선택하고 추가를 누릅니다. 3. 이런 방법으로 입출력용 인자 두개를 등록 합니다. 4. 추가 한 후, idl 파일에서 살펴보면 어떻게 추가 되어 있는지 볼 수 있습니다. 클래스에 함수 추가하는 것과 크게 다르지 않습니다만 인자에 특성이 들어가는 것과 만들어진 결과가 그냥 헤더 파일의 함수 선언과는 좀 다르다는 점이 있지요. 또한, CHello에도 같은 이름으로 헤더 파일과 소스에 해당 메서드가 추가 되었습니다. 즉, 이 클래스에 정의 된 함수 중 외부로 .. 더보기
[COM] 31. ATL의 개요 (1) - 프로젝트와 객체의 생성 순수한(?) C++ 언어를 이용한 COM과 VC++의 COM. 이제 ATL(Active Template Library)입니다. 이는 '작고 빠르고 확장성을 갖는 COM 컴포넌트를 쉽게(!) 구현 할 수 있게 한다'....라고 합니다. '작다'는 특징은 템플릿이기 때문에 실제 인스턴스가 만들어지기 전까지는 코드가 생성되지 않기 때문에 작을 수 있고, '쉽게' 구현 할 수 있다는 것은, 필수 인터페이스(IUnknown, IClassFactory)에 대한 코드가 구현되어 있기 때문에 편리합니다. '빠르고 확장성'이 있다는 것은...아마도, 설계를 잘 했나보군요. 하핫~ ATL이 어떻게 이런 장점을 제공하는지는 예제를 통해 어느 정도 확인 할 수 있겠습니다. 예제를 만들 때 눈 여겨 봐야 할 점은 ATL을 사용.. 더보기