Win32 App 에서 MFC 사용하는 법
- Module / WindowsMFC
- 2009. 8. 7.
일반적으로 DirectX를 이용한 게임 애플리케이션 개발은 VC++에서 Win32로 개발한다.
그런데 Rhea君과 Rhea君 주위의 모임에는 게임 코드에 MFC를 많이 사용한다.
Win32로 개발하더라도 MFC를 사용하는 것은 아주 쉽다.
1) 우선 stdafx.h 에
#include <afx.h>
#include <afxwin.h>
이 두 헤더파일을 추가한다.
사실 afx.h 만 있어도 되지만 AfxMessageBox()같은 함수를 사용하기 위해서는 afxwin.h 을 추가해주자.
(실제 최종 아웃풋에 사용되지 않더라도 개발시 많은 도움을 준다.)
중요한 것은 MFC 헤더 파일들이 반드시 기존
#include <windows.h>
보다 먼저 선언 되어야 한다는 점이다.
이 순서가 틀리면 afxv_w32.h 의
#ifdef _WINDOWS_
#error WINDOWS.H already included. MFC apps must not #include <windows.h>
#endif
에서 걸리게 된다.
2) 그리고 프로젝트 속성으로 들어가
일반 탭에서 윈도우 표준 Windows 라이브러리가 아닌 MFC 사용으로 설정해주자.
(MFC가 사실상의 표준 Windows 라이브러리라니까!!)
이때에도 일반적인 MFC 프로젝트와 마찬가지로 Shard DLL과 Static Library 를 고를수 있다.
이 과정은 Link빌드 명령줄에서 /ENTRY:"wWinMainCRTStartup" 을 추가해주는 것과 같은 효과를 가진다.
이제 Win32 프로젝트에도 CString, AfxMessageBox() 같은 MFC 클래스를 사용할 수 있고
추가되는 컨트롤은 해당 MFC 헤더를 추가해주면 된다.
이 과정은 사실 순수 Win32 애플리케이션을 MFC 애플리케이션으로 바꿔 버리므로
Release 버전 배포시 MFC DLL을 함께 배포하거나 Static 으로 빌드하는 것을 잊지말자.
...제대로 MFC를 공부했다면 저절로 알 내용이지만 분명 검색어에 걸려 이 포스트를 읽는 분이 많으리라 믿는다.
'Module > WindowsMFC' 카테고리의 다른 글
MFC - 다이얼로그 생성시 발생되는 메세지들... (0) | 2009.08.07 |
---|---|
[C] 유니코드 char, T2A, A2T (0) | 2009.08.07 |
API/MFC 정적 Library 만들기 (0) | 2009.05.28 |
MultiByteToWideChar (0) | 2009.05.15 |
WM_CLOSE / WM_DESTROY (0) | 2009.04.29 |