2010. 3. 11. 16:59
SDK 는 C언어 형태로 제공되는 라이브러리 이고,
MFC 는 이를 클래스 형태로 캡슐화하여 만든 클래스 라이브러리이다.

주의
SDK에서 제공하는 모든 기능들을 MFC에 다 캡슐화 해놓지는 않았는데 예를 들어  GlobalAlloc이라는 함수가 있는데
메모리를 할당하는 일은 특정 클래스에서만 하는 것이 아니라, 언제 어디서든 사용 할 수있기때문에 이런 함수는
SDK형태로 사용한다.

SDK
HDC hDC;
hDC = BeginPaint(hWnd, &ps);
DrawText(hDC, "마우스", ...);
EndPaint(hWnd, &ps);


MFC
CPaintDC dc(this);
dc.DrawText("마우스",...);

MFC는 dc라는 인스턴스명에 의하여 어떠한 윈도우를 사용할지 구별되고있고 CDC클래스는 멤버변수로서
HDC형 변수인 m_hDC를 가지고 있고, DrawText 멤버 함수는 이를 이용하여 SDK함수를 호출한다.
또한, Beginpaint는 생성자에서 Endpaint가 소멸자에 있음으로 틀에 박힌 작업을 프로그래머가 하지 않아도 된다.

클래스와 핸들의 연계성

위에서 예를 들자면  MFC클래스를 SDK로 작성된 프로그램에 넘겨주려면  HDC형 멤버변수를 직접 넘겨주거나 이를 반환하는 함수 GetSafeHdc가 있다.

'API & MFC > MFC & COM' 카테고리의 다른 글

COM이론(Component Object Model)  (0) 2010.03.12
메모리 비트맵  (0) 2010.03.11
프로퍼티시트 적용&도움말 지우기  (0) 2010.03.11
디버그모드 & 릴리즈모드  (0) 2010.03.10
사운드출력함수  (0) 2010.03.10
Posted by 아몰라