Microsoft Foundation Class Library 편집하기


편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
5번째 줄: 5번째 줄:
원래 윈도우의 API는 다양한 언어에서 포팅하기 쉽게 하려고 C언어의 함수로 구성되어 있다.<ref>좀 쓰인다 하는 언어들은 C언어 함수의 바인딩을 지원한다</ref>
원래 윈도우의 API는 다양한 언어에서 포팅하기 쉽게 하려고 C언어의 함수로 구성되어 있다.<ref>좀 쓰인다 하는 언어들은 C언어 함수의 바인딩을 지원한다</ref>


하지만 이 API 함수로 코딩을 한다는 것이 쌩 노가다인지라, 네이티브하면서, 좀 더 개발하기 쉽게 하기 위해서는 C++가 딱 제격이고, API의 구조체나 함수를 모아 클래스로 만들어서 라이브러리화한 것이다.
하지만 이 API 함수로 코딩을 한다는 것이 쌩 노가다인지라, 네이티브하면서, 좀 더 개발하기 쉽게 하기 위해서는 C++가 딱 제격이고, API의 구조체나 함수를 모아 클래스로 만들어서 라이브러리화 한 것이다.
 
=== 메시지 맵 ===
=== 메시지 맵 ===
MFC의 가장 큰 특징이라면 이벤트 처리를 할 때 가상함수를 이용한 멤버함수 재정의가 아닌, 메시지 맵이라는 일종의 매크로를 이용하여 이벤트와, 그 이벤트를 처리할 멤버함수를 연결한다는 점이다.
MFC의 가장 큰 특징이라면 이벤트 처리를 할때 가상함수를 이용한 멤버함수 재정의가 아닌, 메시지 맵이라는 일종의 매크로를 이용하여 이벤트와, 그 이벤트를 처리할 멤버함수를 연결한다는 점이다.


조금 이상하게 보일지는 모르지만, 수십가지의 이벤트를 가상함수로 만들 경우, 이를 위한 메모리가 소모되는 것을 막기 위해 생겼다.
조금 이상하게 보일지는 모르지만, 수십가지의 이벤트를 가상함수로 만들 경우, 이를 위한 메모리가 소모되는 것을 막기 위해 생겼다.
23번째 줄: 22번째 줄:
=== MDI ===
=== MDI ===
'''M'''ulti '''D'''ocument '''I'''nterface
'''M'''ulti '''D'''ocument '''I'''nterface
 
여러 개의 Document Template으로 이루어져 한번에 여러 개의 문서를 사용 가능하다. 화면 분할이 가능한 편집 툴이 여기에 속한다.
여러 개의 Document Template으로 이루어져 한번에 여러 개의 문서를 사용 가능하다. 화면 분할이 가능한 편집 툴이 여기에 속한다.
 
대표적인 프로그램으로, [[마이크로소프트 비주얼 스튜디오|Microsoft Visual Studio]]가 있다.
대표적인 프로그램으로, [[마이크로소프트 비주얼 스튜디오|Microsoft Visual Studio]]가 있다.


38번째 줄: 37번째 줄:


== 대체재 ==
== 대체재 ==
나온지 오래되었고 C++보다 C#을 밀고 있는 편인 마이크로소프트에 의해 찬밥취급을 받고 있다. 따라서 새로운 프로젝트일 경우 GUI를 구성할 때 다음과 같은 대체재들이 존재한다.
나온지 오래되었고 C++보다 C#을 밀고 있는 편인 Microsoft에 의해 찬밥취급을 받고 있다. 따라서 새로운 프로젝트일 경우 GUI를 구성할 때 다음과 같은 대체재들이 존재한다.
* 윈도우에서만 동작한다면 C#의 Winform이나 WPF가 있다, Winform은 MFC처럼 Windows API를 래핑한 형태에 더 발전된 구조를 가지고 있고, WPF는 XML를 기반으로 윈도우를 디자인하고 하드웨어 가속을 받는 Direct2D로 컨트롤을 그린다. 덕분에 컨트롤을 꾸밀 수 있는 기능이 강력하다. 혹은 마이크로소프트에서 강력하게 밀고 있는 유니버설 윈도우 앱도 괜찮다. 이건 WPF와 비슷한 구조로 윈도우를 디자인한다.
* 윈도우에서만 동작한다면 C#의 Winform이나 WPF가 있다, Winform은 MFC처럼 Windows API를 래핑한 형태에 더 발전된 구조를 가지고 있고, WPF는 XML를 기반으로 윈도우를 디자인하고 하드웨어 가속을 받는 Direct2D로 컨트롤을 그린다. 덕분에 컨트롤을 꾸밀 수 있는 기능이 강력하다. 혹은 Microsoft에서 강력하게 밀고 있는 유니버설 윈도우 앱도 괜찮다. 이건 WPF와 비슷한 구조로 윈도우를 디자인한다.
* 크로스플랫폼으로 동작하려 한다면, C++에서는 [[QT]]나 '''[[wxWidgets]]'''<ref>문법이 비슷해 갈아타기 쉽다.</ref>, C언어에서는 GTK+가 있다.
* 크로스플랫폼으로 동작하려 한다면, C++에서는 [[QT]]나 [[wxWidgets]], C언어에서는 GTK+가 있다.
* Java의 Swing이나 AWT는...... 잊어버리자......
* Java의 Swing이나 AWT는...... 잊어버리자......
[[추가바람]]


{{각주}}
{{각주}}
{{프로그래밍}}
{{프로그래밍}}
[[분류:C++ 라이브러리]]
[[분류:C++ 라이브러리]]
[[분류:API]]
[[분류:마이크로소프트]]
리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다.
취소 편집 도움말 (새 창에서 열림)

| () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |}