ATL 44

COM 기본 개념 ~~ 정리해 보자

COM(Component Object Model) - 가상함수 테이블을 메모리게 구축하고 Virtual Table을 통해 함수를 호출하는 표준 정의 - 인터페이스(접근방법)와 구현(캡슐화)의 분리 - 모든 COM 인터페이스는 IUnknown의 AddRef(), Release(), QueryInterface() 함수로 시작 - 인터페이스 : 개체와 클라이언트간의 규약 - 사용자와 소프트웨어가 따로 사용하는 이름이 존재 - 일반적으로 인터페이스명은 I로 시작 - 모든 인터페이스는 GUID(Globally Unique Identification)를 가짐(=IID) - IID : 128 bit 구조체 형식, IP와 시간에 대한 알고리즘으로생성하므로 세계에서 유일한 ID - Implementation에서는 강제로..

COM, ATL 2008.08.08

Process/Thread/Apartment

윈도우는 멀티스레드 운영체제이다. 잘 짜여진 멀티스레드 프로그램은 기존의 프로그래밍 방법만으로는 쉽게 구현하기 힘든 편의성을 제공한다. 또한 여러 개의 프로세서를 사용한 멀티프로세스 시스템의 장점을 최대한 살릴려면 멀티스레드 프로그램을 이용해야만 하는 경우도 많다. 이러한 장점에 반해 멀티스레드 프로그램은 분명히 매우 복잡하다. 단순히 몇몇 API만으로 스레드를 생성하고 사용할 수 있지만 단순히 그래서는 멀티스레드 프로그램의 장점을 전혀 살릴 수 없다. 오히려 시스템 전체적인 성능을 낮추는 요인이 될 수 도 있다. 분명 이 글은 멀티스레딩에 관한 책은 아니지만 이러한 점에 대해 조금은 언급을 하도록 하자. 윈도우는 멀티스레드 운영체제이다. 하나의 스레드는 하나의 실행 단위이다. 하지만 멀티프로세스 시스템..

COM, ATL 2008.08.02