인터페이스란, 좁은 의의 인터페이스로
순수가상함수만을 갖는 클래스를 말합니다.
넓은 의미의 인터페이스란, 앞으로 프로그램을 어떻게 짤것인지,
클래스는 어떤 구조를 갖도록 설계할 것인지를 위한 약속이라고 보시면 됩니다.
[COM 이란?]
아래 보이는 그림이 바로 COM객체의 구조이다.
-WGPD에도 이와 동일한 그림이 첨부되있다.
사실 여러가지 설명이 있지만 개인적으로 보기엔 이 그림만으로 충분하다고 보기에
이것만 넣었고 다른 설명의 그림도 COM을 이해하는데 도움이 되지만 귀찮다 솔직히 ㅡㅡ;
흠...단순히 위의 그림을 설명하자면 'COM 객체'라는 커다란 사각형이 있고
작은 사각형 2개가 이 안에 포함돼 있다.이 사각형은 Interface A와 Interface B이고
각각 사각형은 입력과 출력이 존재한다.
즉 정리하자면 COM객체 안은 Interface들이 있고 각 Interface안에는 입력과 출력이 있으면
함수들(method)이 존재한다. 이게 COM이란다.
참고로 인터페이스는 그냥 일련의 함수가 집합된C++에서의 Class라고 보면 된다.
이처럼 보통 COM객체는 하나 이상의 Interface를 포함한다.
-내 생각으론 입문자 입장에서 저 그림이상의 것은 아직까진 필요없다고 본다.
그러면 DirectX 또한 COM객체이므로 이런 구조를 갖는 것은 자명하다.
또 같은 그림을 그리기 귀찮으니
Interface A는 DirectDraw를, Interface B는 DirectSound를 대입.뭐 이런식으로 보면 된다.
염두 해야 될점은 Interface는 내부의 또 다른 Interface를 갖을 수 있다는 점인데
이는 DirectDraw에 관한 chapter에서 언급하기로 한다.
'C/C++/MFC' 카테고리의 다른 글
#include "stdafx.h"와 precompiled header (0) | 2009.03.21 |
---|---|
개발자가 알아두면 좋은 ASP.NET 지식 (세션편) (0) | 2009.02.09 |
PostQuitMessage (0) | 2009.02.09 |
ExitProcess(), TerminateProcess(), PostQuitMessage() 차이점 (0) | 2009.02.09 |
윈도우 핸들 구하는 방법 (0) | 2009.02.09 |