MFC 65

dll : vc의 msdn - 한글

http://msdn.microsoft.com/ko-kr/library/1ez7dh12.aspx Visual C++ DLL DLL(동적 연결 라이브러리)은 여러 함수의 공유 라이브러리로 사용되는 실행 파일입니다. 동적 링크를 사용하여 프로세스에서 해당 프로세스의 실행 코드에 포함되지 않은 함수를 호출할 수 있습니다. 함수의 실행 코드는 DLL에 있으며, DLL에는 이것을 사용하는 프로세스와는 별도로 컴파일, 링크 및 저장되는 하나 이상의 함수가 포함되어 있습니다. DLL을 사용하여 데이터와 리소스를 쉽게 공유할 수 있습니다. 즉, 여러 개의 응용 프로그램이 메모리에 있는 하나의 DLL 복사본 내용을 동시에 액세스할 수 있습니다. 동적 링크는 DLL 함수의 실행 코드를 찾기 위해 런타임에 필요한 정보만을 ..

MFC 2008.09.04

[MSDN] 리소스 전용 DLL 만들기 - 한글 해석

[MSDN] 리소스 전용 DLL 만들기 Visual C++ 리소스 전용 DLL 만들기 리소스 전용 DLL은 아이콘, 비트맵, 문자열 및 대화 상자 등의 리소스만 들어 있는 DLL입니다. 리소스 전용 DLL을 사용하면 여러 프로그램 간에 동일한 리소스 집합을 쉽게 공유할 수 있습니다. 여러 언어로 지역화된 리소스가 있는 응용 프로그램을 제공하는 것도 좋은 방법입니다(MFC 응용 프로그램의 지역화된 리소스: 위성 DLL 참조). 리소스 전용 DLL을 만들려면 새로운 Win32 DLL(비 MFC) 프로젝트를 만든 다음 이 프로젝트에 리소스를 추가합니다. 새 프로젝트 대화 상자에서 Win32 프로젝트를 선택한 다음 Win32 프로젝트 마법사에서 DLL 프로젝트 형식을 지정합니다. 해당 DLL에 사용할 문자열 또..

MFC 2008.09.04

[MSDN] AFX_EXT_CLASS를 사용하여 내보내기 및 가져오기 - msdn 해석

[MSDN] AFX_EXT_CLASS를 사용하여 내보내기 및 가져오기 Visual C++ AFX_EXT_CLASS를 사용하여 내보내기 및 가져오기 확장 DLL은 AFX_EXT_CLASS 매크로를 사용하여 클래스를 내보내고, 확장 DLL에 링크하는 실행 파일은 이 매크로를 사용하여 클래스를 가져옵니다. AFX_EXT_CLASS 매크로를 사용하는 경우에는 확장 DLL을 빌드하는 데 사용되는 것과 동일한 헤더 파일을 해당 DLL을 링크하는 실행 파일에도 사용할 수 있습니다. DLL에 대한 헤더 파일에서 다음과 같이 클래스 선언에 AFX_EXT_CLASS 키워드를 추가합니다. 코드 복사 class AFX_EXT_CLASS CMyClass : public CDocument { // }; 이 매크로는 전처리기 기호..

MFC 2008.09.04

SDI 기반 MFC 응용 프로그램의 시작 MFC - 순차적 정리... 읽어볼만 하다.

1.5.1 SDI 기반 MFC 응용 프로그램의 시작 MFC 2008/06/22 00:28 http://blog.naver.com/ndkarn/120053203183 이 포스트를 보낸곳 () 1] CSDI_SequenceApp() 눈에 보이지 않는 코드들에 의해서 응용 프로그램 객체는 생성될 거싱며, 이 시점에서 응용 프로그램 객체의 생성자가 호출된다. 2] CSDI_SeqenceApp::InitApplication() 이 멤버 함수는 현재 MFC에서 더 이상 사용하지 않는 구시대의 유물과도 같은 것이다. 현재는 InitInstance()함수로 이관 되었다. 그 이름에서 짐작할 수 있듯이, 본래 이함수는 응용 프로그램 자체를 초기화하는 역할을 수행했었다. 3] CSDI_SequenceApp::InitIns..

MFC 2008.09.03

SDI 기반 MFC 응용 프로그램의 종료과정 - 순차적 정리 자료...읽어볼만하다.

1.5.3 SDI 기반 MFC 응용 프로그램의 종료 MFC 2008/06/26 21:49 http://blog.naver.com/ndkarn/120053354648 이 포스트를 보낸곳 () 메시지 루프가 끝나는 떄가 바로 윈도우 응용 프로그램이 종료되는 시점이라고 했었다. 따라서 응용 프로그램이 종료되는 과정의 첫 번째는 WN_CLOSE 메시지를 받고, 그 메시지 핸들러가 호출되는 시점부터 시작한다. 내용을 하나씩 살펴보자. 1] CMainFrame::OnClose() - Call 닫기 버튼을 눌르거나 혹은 [Alt + F4] 키를 입력하면 WM_CLOSE 메시지가 발생한다. OnClose() 함수는 WM_CLOSE 메시지에 대한 핸들러이다. OnClose() 함수가 리턴하기 전에 내부적으로 아래의 함수..

MFC 2008.09.03

스레드 정리 잘 된 글 2

1. Process와 Thread 쓰레드라는 놈을 이해하기 위해선 프로세스란 놈을 먼저 이해해야한다. 프로세스는 EXE란 확장명을 가지고 파일을 실행시켰을 때 실질적으로 컴퓨터의 메모리에 자리잡고 앉아서 실행되는 형태를 말한다. 예를 들면 프로그램을 마우스로 더블클릭하면 OS가 그 프로그램을 실행하기 위해, 알맞게 메모리상에 그 프로세스가 실행가능한 영역을 잡아주고(이런 영역에는 여러가지 영역이 있다.코드부 or 스택부), 프로그램은 거기에 들어앉아서 온갖 사용자의 명령을 다 받으며 자기의 일을 수행한다. 즉, 프로세스는 메모리에 적재된 상태로 동작하는 프로그램이다. 프로세스를 이루는 기본단위가 쓰레드라 볼 수 있다. 프로세스는 적게는 수십개, 많게는 수백개의 Thread로 이루어져 있다. 즉 이런 쓰레..

MFC 2008.09.03

스레드 정리 잘 된 글

1. 개요 현재 대부분의 OS는 프로세스 스케쥴링에 의해 프로그램의 멀티태스킹(Multi-tasking)을 지원하고 있다. 멀티태스킹이란 실행되고있는 프로그램을 일정 단위로 잘라서(slice) 순서대로 CPU를 사용하게끔 하는 것 인데, 사용자는 마치 동시에 여러 개의 프로그램이 실행되는 것처럼 느낄 수 있게 된다. 즉, CPU 사용률을 최대화 하고, 대기시간과 응답시간의 최소화를 가능케 해주는 방법이다. 이번에는 프로세스 한 개만 놓고 보자. 한 프로세스는 구성면에서 [텍스트]-[데이터]-[스택] 영역으로 구성되어있고, 기능면에서는 텍스트의 모듈들은 각각의 역할을 가지고 있다. 프로세스에서의 공유메모리영역을 제외한 부분끼리 묶어서 쓰레드로 만든 후, 이것들을 멀티태스킹처럼 동작시키면 멀티쓰레딩이 되는 ..

MFC 2008.09.03

MFC에 고유의 명령(Command) 메시지 특징

사용자가 메뉴, 툴바, 액셀레이터 등의 항목을 선택했을 때 응용 프로그램 윈도우에게 보내는 메시지를 "명령 메시지"라고 합니다. 명령 메시지는 메뉴, 툴바, 액셀러레이터와 같은 사용자 인터페이스에서 발생되는 WM_COMMAND 메시지를 말합니다. 명령 메시지는 윈도우뿐만 아니라 도큐먼트, 도큐먼트 템플릿, 뷰, 다른 애플리케이션 객체들에 의해 발생될 수 있습니다. 예를 들어 MFC 도큐먼트/뷰 구조를 사용하는 응용 프로그램에서 도큐먼트는 윈도우가 아님에도 불구하고 파일 저장 명령을 처리하도록 되어 있습니다. 그러나 앞에서 메시지를 받을 수 있는 대상은 윈도우 뿐이라 언급했던 것을 기억하실 것입니다. 사실 WM_COMMAND 메시지를 받을 수 있는 대상은 윈도우이지만 MFC에서는 WM_COMMAND 메시지..

MFC 2008.09.02

MFC의 구조

MFC의 구조Programing Tip/C/C++ Programing 2007/01/30 06:51 * 어플리케이션 구조 기본적인 프로그램을 제작할 때 필요한 기본 클래스는 다음 네가지이다. CWinApp, CDocument, CFrameWnd, CView 의 네가지인데 실질적으로 앞의 두 클래스는 화면에 보이지 않고 뒤의 두 클래스는 화면에 보이는 클래스로 구분된다. 윈도우 프로그램은 메시지를 통해 프로그램이 진행 되므로 기본적으로 메시지를 주고 받는 클래스가 필요한데 이것은 CObject에서 상속을 받는 클 래스인 CCmdTarget이다. CFrameWnd : 윈도우 외곽선, 타이틀, 윈도우 메뉴, 도구바, 상태창 등을 포함한 메인 윈도우. CView : 메인 윈도우 내부의 작은 윈도우, 기본적인 화..

MFC 2008.09.02

DEBUG_NEW 간단한 이해 윈도우 프로그래밍

CPP 파일에 DEBUG_NEW 활용하기! 프로그래밍 2005/06/28 18:30 http://blog.naver.com/l544/120014656793 이 포스트를 보낸곳 () 비주얼 C++에서 [MFC]를 사용하고 있을 때, CPP 파일 첫 부분에 다음과 같은 내용을 넣어두자! #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif 보통 MFC 프로젝트에 있지만 다른 곳에서 가져온 CPP 파일에서는 없으니까, 복사해 주면 유용하게 쓸 수 있다. 선언이 있고 없고의 차이는 다음과 같다; [없을 때] Detected memory leaks! Dumping objects -> {78} norm..

MFC 2008.09.02