Programming hwp

Size: px
Start display at page:

Download "Programming hwp"

Transcription

1 3.2 MFC 프로그램의작성, 컴파일, 실행 먼저간단한 MFC 예제프로그램을 Visual C++ 에서작성, 컴파일, 실행등의작업을수행하는방법을보인다음예제프로그램을설명할것이다. 예제프로그램소스코드 //hello.cpp #include <afxwin.h> // Declare the application class class CHelloApp : public CWinApp { public: virtual BOOL InitInstance(); }; // Create an instance of the application class CHelloApp HelloApp; // Declare the main window class class CHelloWindow : public CFrameWnd { CStatic* cs; public: CHelloWindow(); }; // The InitInstance function is called each // time the application first executes. BOOL CHelloApp::InitInstance() { m_pmainwnd = new CHelloWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; } // The constructor for the window class CHelloWindow::CHelloWindow() { // Create the window itself Create(NULL, _T("Hello World!"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Create a static label cs = new CStatic(); cs->create(_t("hello world"), WS_CHILD WS_VISIBLE SS_CENTER, CRect(50, 80, 250, 150), this); } 이프로그램은다음과같은세가지작업을수행한다. 1 응용프로그램객체 를생성한다. 모든 MFC 프로그램은 MFC 및윈도우운영체제관련초기화작업을수행하는한개의응용프로그램객체를갖는다. 2 응용프로그램객체는화면상에창을하나만드는데, 이창은응용프로그램의주실행창이된다. 3 주실행창안에 "hello world" 라는내용을담고있는텍스트레이블컨트롤을생성한다. 위의예제프로그램을입력하고컴파일하는일은 1장에서텍스트기반프로그램을처리하는일과크게다르지않으며, 다음과같이진행된다

2 (1) [ 파일 ] 메뉴 -> [ 새로만들기 ] - [ 프로젝트 ] 메뉴항목을선택하여아래화면이나타나면, Win32 - Win32 프로젝트유형을선택하고프로젝트이름을입력한후, < 확인 > 버튼을누른다. 아래화면에서 < 빈프로젝트 > 체크박스를선택하고, < 마침 > 버튼을누른다

3 C++ 소스프로그램의입력을위한과정은 1 장의경우와같다

4 (2) 예제프로그램을입력한후 [ 디버깅하지않고시작 ] 메뉴항목등의선택을통해실행프로그램을빌드하는과정의링크단계에서다음과같은오류메시지를얻게될것이다. 1>c: program files microsoft visual studio 10.0 vc atlmfc include afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] ========== 빌드 : 성공 0, 실패 1, 최신 0, 생략 0 ========== (3) 위의오류메시지가나타내는것은이프로그램이 MFC 라이브러리를사용하고있는데, 컴파일러옵션이이를반영하고있지않은때문에발생한것이다. 그이유는 Win32 프로젝트유형에서는 MFC 라이브러리를사용하지않는것이디폴트옵션이기때문이다. 따라서컴파일전에 MFC 라이브러리관련옵션을변경해주어야한다. [ 프로젝트 ] 메뉴하단의 [MFCTest( 프로젝트이름 ) 속성 ] 메뉴항목을선택하면아래그림과같은다이얼로그박스가나타날것이다. 왼쪽열은 < 구성속성 > - < 일반 > 으로선택되어있을때, 가운데열의프로젝트기본값중두번째항목인 <MFC 사용 > 의값이 표준 Windows 라이브러리사용 으로되어있을것이다. <MFC 사용 > 항목의오른쪽끝의콤보박스버튼을누르면, 아래와같은리스트가나타날것이다. 이리스트에는 표준 Windows 라이브러리사용 이외에도 정적라이브러리에서

5 MFC 사용, 공유 DLL에서 MFC 사용 등의항목들이있다. 이들중어느것을선택해도무방하지만, 가장아래항목인 공유 DLL에서 MFC 사용 을선택한다. 이런후에다시 [ 디버깅하지않고시작 ] 메뉴항목을선택하면컴파일과실행이이루어지게될것이다. 프로그램이실행되면전체화면의좌측상단에오른쪽그림과같은주실행창이나타날것이다. 이프로그램에대해주실행창의크기변경, 위치변경, 종료등의사용자작업을수행할수있다. 참고사항 1 [Project -> Settings -> General] 에서 Microsoft Foundation Classes: 라는텍스트레이블아래의콤보박스버튼으로선택할수있는세개의항목은다음과같다. 표준 Windows 라이브러리사용 정적라이브러리에서 MFC 사용 공유 DLL에서 MFC 사용 첫번째옵션은 Win32 프로젝트유형에서는디폴트이며, 물론 MFC를사용하지않을것임을나타낸다. 나머지두옵션은 MFC 라이브러리를사용하되사용하는방식을다르게지정하고있다. 정적라이브러리방식으로 MFC를사용하겠다는두번째옵션은컴파일과정의링크단계에서프로그램에서사용하고있는라이브러리코드들을실행파일에포함시킨다는뜻이다. 반면에마지막옵션인동적링크라이브러리 (Dynamic Link Library; DLL) 방식으로 MFC를사용한다는것은링크단계에서실행파일을만들때라이브러리코드를포함시키는대신실행중에동적링크를할수있는준비만해둔다. 동적링크라이브러리방식의경우정적라이브러리방식에비해실행파일의크기가훨씬작은장점이있다. 따라서실행시메모리에읽어들일파일의크기도작으므로메모리사용량측면에서도유리하며읽어들이는시간도적게걸린다. 동적링크를위해사용되는라이브러리파일은 mfc??.dll이라는이름을갖는데, C: WINDOWS SYSTEM32 폴더에서이파일들을찾을수있다. 파일이름의?? 는버전을나타내며, Visual C++ 6.0의경우 mfc42.dll 파일이며 Visual C 의경우 mfc100.dll이다. 이파일에는개별프로그램이필요로하는라

6 이브러리코드만있는것이아니라전체 MFC 라이브러리코드를다포함하고있어큰파일이다. 그러나이파일을필요로하는첫번째프로그램에의해메모리에올라와있으면다른프로그램들은동일한 DLL 파일을공유할수있어추가로읽어들이는작업은필요없다. 이와같은이유에서 Shared( 공유 ) DLL이라는표현을사용한다. DLL 방식의단점은다른컴퓨터로옮겨실행할때, 필요한 DLL 파일이그컴퓨터에갖추어져있지않을경우프로그램을실행할수없다는점이다. 이러한문제를피하고싶을경우라면여러단점에도불구하고정적라이브러리방식의링크가사용되어야할것이다. 참고사항 2 컴파일작업의결과로만들어지는파일들은프로젝트폴더안의 Debug 폴더들과 ipch 폴더안에저장된다. 여기에는물론.exe 확장자를갖는실행파일도포함된다. 여기에들어있는파일들은언제라도프로그램소스에서다시만들어낼수있으므로당장필요하지않을경우지움으로써디스크공간을절약할수있다. [ 특히과제제출시에는이들파일을반드시삭제한후제출하여야한다.] 참고사항 3 컴파일오류가있을경우, 오류메시지가 Visual C++ 화면아래쪽의출력윈도우에나타낸다. 해당메시지를클릭하면그메시지에대응되는소스위치를찾아준다. 이기능은링크단계의오류의경우에는사용할수없다. 링크단계오류는대체로다음과같은경우자주발생한다. MFC 사용옵션이선택되어있지않다. ( 참고사항 1 참고 ) 함수호출시사용하는이름에철자오류가포함되어정의되어있는함수이름과정확히일치하지않는다. 이전에실행된프로그램을종료하지않은상태에서프로그램을수정한후새로컴파일한다. 이경우이전의실행파일을지울수없어새로운실행파일을만들수없으며, 다음과같은오류메시지를보게될것이다. 1> 빌드시작 : 프로젝트 : MFCTest, 구성 : Debug Win > Hello.cpp 1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 1>LINK : fatal error LNK1168: D: class Projects MFCTest Debug MFCTest.exe을 ( 를 ) 쓰기용으로열수없습니다. ========== 빌드 : 성공 0, 실패 1, 최신 0, 생략 0 ========== 3.3 MFC 프로그램예제해설 이절에서는앞절에서사용된 MFC 예제프로그램의전체구조와각부분의내용을차례로

7 살펴본다. 프로그램설계 여기에서작성하려는프로그램은창안에 "hello world" 라는메시지를출력하는프로그램이다. 이러한응용프로그램은먼저화면상에창을생성하는데, 그창의타이틀바에 "Hello World!" 라는제목을넣는다. 그다음창안에 "hello world" 라는텍스트를표시한다. 이러한작업을위해다음과같은 3개의객체가필요하다. 응용프로그램을초기화하고윈도우운영체제에연결하는작업을수행하는응용프로그램객체가필요하며, 이객체는또한이벤트처리작업을담당한다. 응용프로그램의주실행창의역할을담당하는창객체. "hello world" 라는텍스트레이블을보여주는텍스트컨트롤객체. 위의객체들중첫두객체는모든 MFC 프로그램에공통적으로포함되는객체들이다. 세번째객체는여기서의예제응용프로그램에서필요하여포함시킨객체이다. 개별응용프로그램마다사용자로부터의입력을받기위해또는출력을표현하기위한여러가지사용자인터페이스객체들을가질수있다. 대체적인사용자인터페이스설계가완료되면그와같은인터페이스를구현하기위해창이나컨트롤등을생성하기위한코드를작성하게될것이다. 이프로그램의경우에는텍스트레이블을나타내는컨트롤하나만사용하고있지만주실행창이나여러다이얼로그박스들에서수백개의컨트롤들을사용할수도있다. 예제코드이해하기 아래에보여주고있는코드는앞의예제코드에설명의편의를위해행번호를붙인것이다. 1 //hello.cpp 2 #include <afxwin.h> 3 // Declare the application class 4 class CHelloApp : public CWinApp 5 { 6 public: 7 virtual BOOL InitInstance(); 8 };

8 9 // Create an instance of the application class 10 CHelloApp HelloApp; 11 // Declare the main window class 12 class CHelloWindow : public CFrameWnd 13 { 14 CStatic* cs; 15 public: 16 CHelloWindow(); 17 }; 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pmainwnd = new CHelloWindow(); 23 m_pmainwnd->showwindow(m_ncmdshow); 24 m_pmainwnd->updatewindow(); 25 return TRUE; 26 } 27 // The constructor for the window class 28 CHelloWindow::CHelloWindow() 29 { 30 // Create the window itself 31 Create(NULL, 32 -T("Hello World!"), 33 WS_OVERLAPPEDWINDOW, 34 CRect(0, 0, 300, 200)); 35 // Create a static label 36 cs = new CStatic(); 37 cs->create(_t("hello world"), 38 WS_CHILD WS_VISIBLE SS_CENTER, 39 CRect(50, 80, 250, 150), 40 this); 41 } 위의프로그램은 6 개의부분으로나누어볼수있다

9 [2] 헤더파일 afxwin.h에대한 include를나타내고있는데, 이파일은 MFC에서사용되는타입정의, 클래스선언, 변수정의등을포함하고있으며, 윈도우 API 라이브러리사용을위한다른헤더파일들에대한 include들도포함하고있다. [3-8] MFC에서표준응용프로그램을나타내는 CWinApp 클래스를상속받아정의되는응용프로그램클래스 CHelloApp가선언되고있다. 이클래스를선언하는이유는 CWinApp 클래스에서상속받은가상함수 InitInstance() 를재정의하기위해서이며, 이함수는응용프로그램실행이시작될때호출된다. [10] 응용프로그램객체 HelloApp를전역변수로정의한다. 이프로그램의실행이시작되는곳이바로이전역변수의생성이다. 응용프로그램이메모리에읽혀들어가서실행이시작되면, 전역변수가생성되며 CHelloApp 클래스의기본생성자함수가실행되는데, 프로그램에서이함수를정의하고있지않으므로컴파일러가제공하는기본생성자를사용할것이다. 컴파일러가제공하는기본생성자는현재클래스에서정의되는멤버변수들에대한생성자호출과함께부모클래스인 CWinApp의기본생성자함수를호출하게된다. CWinApp의생성자함수는 InitInstance() 함수를호출하도록되어있는데, 이함수는가상함수이므로 CWinApp 클래스의 InitInstance() 함수가아니라 [18-26] 에정의되어있는 CHelloApp 클래스의 InitInstance() 함수를호출하게된다. [11-17] MFC 클래스인 CFrameWnd 클래스를상속받아정의되는 CHelloWindow 클래스가선언되고있다. 이클래스의인스턴스가이응용프로그램의주실행창의역할을한다. 새로운클래스를선언한것은생성자, 소멸자, 멤버변수등을구현할수있도록하기위함이다. [18-26] CHelloApp::InitInstance() 함수가구현되어있다. 이함수의역할은주실행창의생성을위해 CHelloWindow 클래스의인스턴스를생성하는일이며, 그결과로 [27-41] 에정의된생성자함수 CHelloWindow() 가실행된다. [27-41] 생성자함수 CHelloWindow() 가구현되어있으며, 이함수는창을생성한다음그내부에텍스트컨트롤을생성한다. 이프로그램에서유의할점은 C/C++ 프로그램의실행시작위치를나타내는 main() 함수도없고, 또예전윈도우응용프로그램의시작위치를나타내던 WinMain() 함수도없다는점이다. 그리고 WinMain() 함수의주요내용이었던이벤트처리루프도보이지않는다. 이러한내용들은모두 CWinApp 클래스에구현되어숨겨져있다. 또창의최대화, 최소화, 이동등을수행할수있는데, 이를위한코드들은 CFrameWnd 클래스안에숨겨져있다. 아래에서는위의프로그램을구성하는 3 개의객체를중심으로더욱자세히살펴본다

10 응용프로그램객체 모든 MFC 프로그램은 CWinApp 클래스에서파생된응용프로그램객체한개를갖는다. 이객체는반드시전역변수로선언되어야한다. CWinApp 클래스에서파생된객체는주실행창의생성을포함하는응용프로그램의초기화를수행하며, 이벤트처리루프를갖는다. 주실행창은응용프로그램마다다르며, 따라서이를위한코드작성이필요한데, 이를위해재정의되는함수가가상함수 InitInstance() 이다. MFC 프로그램에서 CWinApp 객체를사용하지못하고그파생클래스를사용하는이유가여기에있다. [3-8] 의코드가파생클래스 CHelloApp를선언하고있는데, CWinApp 클래스를상속받는다는사실과 InitInstance() 함수를재정의할것임을선언하고있다. 3 // Declare the application class 4 class CHelloApp : public CWinApp 5 { 6 public: 7 virtual BOOL InitInstance(); 8 }; [18-26] 에구현되어있는 InitInstance() 함수는 CHelloApp의데이터멤버의하나이며주실행창객체에대한포인터로사용되는변수 m_pmainwnd를사용하여창을생성하여화면에표시한다. CWinApp는 m_pmainwnd 외에도여러다른데이터멤버들을가지고있는데, 예를들면 m_pszappname( 응용프로그램이름 ), m_lpcmdline( 응용프로그램실행을위한명령 ), m_ncmdshow( 주실행창의초기모습 ) 등인데, 이변수들은응용프로그램객체가생성되면서프로그램등록정보로부터받아온적절한값으로초기화된다. 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pmainwnd = new CHelloWindow(); 23 m_pmainwnd->showwindow(m_ncmdshow); 24 m_pmainwnd->updatewindow(); 25 return TRUE; 26 } 25번행에서 TRUE를리턴하는것은초기화가성공적으로완료되었음을의미한다. 만일여기에서 FALSE를리턴한다면프로그램은즉시종료된다

11 창객체 MFC는주실행창으로사용될수있는창유형으로크기변경이가능한프레임윈도우와크기가고정된다이얼로그윈도우등두가지를정의하고있다. 이예제에서는프레임윈도우를사용하고있다. 아래코드는 CFrameWnd 클래스의파생클래스 CHelloWindow를선언하고있다. 11 // Declare the main window class 12 class CHelloWindow : public CFrameWnd 13 { 14 CStatic* cs; 15 public: 16 CHelloWindow(); 17 }; 파생클래스에는새로운생성자함수와컨트롤객체에대한포인터변수가포함되어있다. 응용프로그램마다주실행창안에각자고유한컨트롤들을가질것이며, 이를위해새로운생성자함수를필요로한다. 이클래스에서는정의되어있지않지만, 생성자함수에서생성된객체들을삭제하기위한소멸자함수를정의할수도있다. 그러나주실행창이소멸되는상황이라면일반적으로전체프로그램이종료될것이므로동적으로할당된객체들을따로삭제할필요는없다. 그리고창자체나창안의컨트롤들을통해발생된이벤트들을처리하는함수도이클래스안에표시될수있으며, 5절에서그러한예들을살펴볼것이다. 대부분의윈도우응용프로그램들은한개씩의주실행창을갖는다. 따라서 CHelloApp 클래스도주실행창을가리키는데이터멤버 m_pmainwnd를갖고있는데, 이변수는 CWinThread에서상속된데이터멤버이다. 주실행창의생성을위해 InitInstance() 함수는 22 번행에서와같이 CHelloWindow 클래스의인스턴스를생성하고 m_pmainwnd 변수로하여금그창객체를가리키게만든다. 18 // The InitInstance function is called each 19 // time the application first executes. 20 BOOL CHelloApp::InitInstance() 21 { 22 m_pmainwnd = new CHelloWindow(); 23 m_pmainwnd->showwindow(m_ncmdshow); 24 m_pmainwnd->updatewindow(); 25 return TRUE; 26 }

12 창객체의생성으로끝나는것이아니라새로운창을화면에적절히나타나게만들기위해두가지작업이더필요하다. 창객체에대해 ShowWindow() 함수를호출하여창자체를화면에나타나게하는작업, 그리고 UpdateWindow() 함수를호출하여창의클라이언트영역의내용물을새로그리게함으로써창안의컨트롤등이정확히나타나게만드는작업이다. 이함수들은 CFrameWnd의부모클래스인 CWnd 클래스의멤버함수들이다. (CWnd는 200개가넘는멤버함수들을갖고있는방대한클래스이다.) CWnd::ShowWindow() 함수의파라미터는창을어떤모습으로나타나게할것인지를지정하는데, SW_HIDE( 창감춤 ), SW_RESTORE( 원래크기복원 ), SW_SHOWMAXIMIZED( 최대크기 ), SW_SHOWMINIMIZED( 최소화, 작업표시줄아이콘 ), SW_SHOWNORMAL( 정상크기 ) 등의여러가지값을사용할수있다. 여기에서는프로그램등록정보로부터초기화된 m_ncmdshow를사용하고있다. 22번행에서는 new 연산자를사용하여 CHelloWindow 클래스인스턴스를생성하고있으며, 이클래스의생성자인 CHelloWindow() 가호출된다. 이생성자는먼저 CFrameWnd 클래스의멤버함수 Create() 를호출하여프레임윈도우를생성한다. 27 // The constructor for the window class 28 CHelloWindow::CHelloWindow() 29 { 30 // Create the window itself 31 Create(NULL, 32 _T("Hello World!"), 33 WS_OVERLAPPEDWINDOW, 34 CRect(0, 0, 300, 200)); Create() 함수에는 4개의파라미터가전달된다. 첫번째파라미터 NULL은디폴트클래스인 CWnd에서정의된속성구조가사용될것임을표시한다. 두번째파라미터는창의타이틀바에나타날텍스트이다. 세번째파라미터는창의스타일속성을나타내는값인데, 이창은다른 ( 응용프로그램의 ) 창에의해가려질수있는정상적인창임을나타낸다. 네번째파라미터는이창의위치와크기를나타내기위해사각영역을정의하는 CRect 클래스의생성자를사용하고있다. 처음두값 (0, 0) 은사각영역의좌측상단의좌표, 마지막두값 (300, 200) 은사각영역의우측하단의좌표를나타낸다. 이는이창이전체화면의좌측상단에위치하며, 가로세로의크기가각기 300, 200임을의미한다. 텍스트컨트롤 CHelloWindow() 는프레임윈도우의생성에이어텍스트컨트롤객체를생성한다. 이객체를가리키기위한 CStatic*, 타입의변수는 CHelloWindow 클래스에서 private 데이터멤버로선언되어있다. 텍스트컨트롤객체를만드는작업은두단계로이루어진다. 먼저 CStatic 클래스의생성자

13 를호출하여필요한객체를생성한다음, CStatic::Create() 함수를호출하여그세부사항을정한다. 27 // The constructor for the window class 28 CHelloWindow::CHelloWindow() 29 { 30 // Create the window itself 31 Create(NULL, _T("Hello World!"), 33 WS_OVERLAPPEDWINDOW, 34 CRect(0, 0, 200, 200)); 35 // Create a static label 36 cs = new CStatic(); 37 cs->create(_t("hello world"), 38 WS_CHILD WS_VISIBLE SS_CENTER, 39 CRect(50, 80, 250, 150), 40 this); 41 } 80 CStatic::Create() 함수를위한파라미터들은 CWnd::Create() 함수의경우와유사하지만약간의차이가있다. 첫번째파라미터는텍스트컨트롤이보여주는텍스트를나타내는스트링이다. 두번째파라미터는스타일속성들을나타낸다. WS_CHILD 스타일은이컨트롤이나타내는창은다른창내부에위치하며, 독자적으로존재하는것이아니라그창과함께이동하는창임을나타낸다. 이러한성격의창을자식창이라고하며, 이창을포함하는창은부모창이라고한다. WS_VISIBLE은이창이감추어져있지않고화면에보인다는것을나타낸다. SS_CENTER는이컨트롤의 ( 수평방향으로 ) 중앙의위치에텍스트가표시될것임을나타낸다. 세번째파라미터는텍스트컨트롤의위치와크기를나타낸다. 이컨트롤은주실행창의타이틀바부분과테두리선을제외한클라이언트영역이라불리는창내부에나타날수있으며, 따라서좌표값의기준위치도클라이언트영역의좌측상단이된다. 네번째파라미터는이컨트롤을자식창으로갖는부모창을가리키는포인터인데, 현재 CHelloWindow 클래스안이므로 this는 CHelloWindow 인스턴스인주실행창을가리킨다. 3.4 MFC 스타일 컨트롤은윈도우응용프로그램들을위한인터페이스역할에이용되는사용자인터페이스요소들이다. 많은응용프로그램에나타나는윈도우나다이얼로그박스들에서프로그램기능을적절히표현하고있는컨트롤들이주된요소들이다. 따라서윈도우운영체제들이제공하고있는컨트롤의용법을이해하는것은대단히중요한일이다. 컨트롤들은무엇을할수있는가, 컨트롤의외관이나동작의세부사항을어떻게변경할수있는가, 사용자의이벤트에대해컨

14 트롤이적절히반응하도록만들기위해서필요한작업은무엇인가등의내용들에대해이해할필요가있다. 이러한지식과다이얼로그나메뉴등의용법에관한지식을활용하여다양한윈도우응용프로그램을만들수있다. 표준컨트롤들을표현하기위한클래스에는 CStatic, CButton, CEdit, CList, CComboBox, CScrollBar 등의 6개가있다. 이들중에가장용법이단순한클래스는내용이고정된텍스트를출력하는 CStatic이다. CStatic 클래스는데이터멤버를갖지않으며, 멤버함수도생성자와 Create() 함수, 그리고텍스트대신아이콘, 비트맵, 커서이미지등의그림을처리하기위한몇개의함수정도이다. 이절에서는컨트롤의외관과동작을조정하기위한스타일의설명을위해 CStatic 클래스의예를살펴보며, 다음절에서는 CButton 클래스와 CScrollBar 클래스등을다룬다. 기초사항 CStatic 클래스는사용자에게내용이고정된텍스트메시지를보여주는것이주된용도이며, 이러한텍스트는어떤정보를전달하기위한메시지일수도있고, 다른컨트롤을설명하는레이블일수도있다. CStatic 객체들은텍스트외에사각영역, 사각형프레임, 아이콘, 비트맵등의다른모습으로나타날수도있다. 사각영역이나사각형프레임은연관성있는다른컨트롤들을그룹으로묶어보여주거나분리해서보여주기위해사용될수있다. 이러한외관을정해줄때사용하는것이스타일이다. CStatic 컨트롤은항상다른창의자식창형태로나타난다. 3절에서살펴본예제에서텍스트컨트롤을만들기위한 2 단계코드는다음과같다. CStatic *cs;... cs = new CStatic(); cs->create(_t("hello world"), WS_CHILD WS_VISIBLE SS_CENTER, CRect(50, 80, 150, 150), this); 생성자와 Create() 함수를차례로호출하는 2 단계작업은대부분의컨트롤들에서일반적으로사용되는절차이다. 생성자는객체표현을위한메모리를할당하고초기화작업을수행하며, Create() 함수는컨트롤창을만들어화면에나타나도록만드는역할을수행한다. 아래와같은프로토타입을갖는 Create() 함수는다섯개의파라미터를갖지만마지막파라미터는디폴트인수를갖고있으며, CStatic 컨트롤의경우보통다른값을지정하지않는다. BOOL Create(LPCTSTR lpsztext, DWORD dwstyle, const RECT& rect, CWnd* pparentwnd, UINT nid = 0xffff);

15 여기서설명의초점이되는파라미터는 32비트정수를나타내는 DWORD 타입의 dwstyle이며, 컨트롤의스타일정보를표현한다. CStatic 스타일 컨트롤들은여러가지스타일을갖는데, 이값은 Create() 함수에게전달되는 dwstyle 파라미터에의해정해진다. 각스타일속성은 32 비트중어느한비트를이용하여표시된다. 여러속성을결합하기위해서는비트단위 OR 연산자 를사용한다. 예를들면, 위에서사용된스타일속성및이들을결합한결과는아래와같다. WS_CHILD: WS_VISIBLE: SS_CENTER: WS_CHILD WS_VISIBLE SS_CENETR: 텍스트컨트롤은일종의창이며, CStatic 클래스는 CWnd 클래스의자식클래스이다. 따라서 CStatic 클래스에고유하게적용되는스타일도있고 CWnd 클래스에적용되는스타일중 CStatic 클래스에사용될수있는것들도있다. CWnd 클래스에서상속받은스타일 WS_CHILD: 다른창의자식창임을나타내며, CStatic에서는필수스타일 WS_VISIBLE: 화면에보임을나타내며, 대개의경우사용됨. WS_DISABLED: 사용자로부터의이벤트에반응하지않음을나타내는데, 텍스트컨트롤의경우원래반응하지않으므로대체로불필요함. WS_BORDER: 컨트롤에경계선이그려짐. "WS" 는 Window Style 을나타낸다. CStatic 에고유한스타일 아래스타일상수에서 "SS" 는 Static Style 을나타낸다. 텍스트위치관련스타일 SS_CENTER: 텍스트를가운데정렬하여표시한다. 필요하면여러행을사용한다

16 SS_LEFT: 텍스트를왼쪽정렬하여표시한다. 필요하면여러행을사용한다. SS_RIGHT: 텍스트를오른쪽정렬하여표시한다. 필요하면여러행을사용한다. SS_LEFTNOWORDWRAP: 텍스트를왼쪽정렬하여표시한다. 한줄에들어가지않는부분은표시하지않는다. 사각영역및프레임표시스타일 아래의스타일중의하나가사용될경우 Create() 함수의첫번째파라미터로주어지는텍스트스트링은무시된다. SS_BLACKFRAME: 윈도우프레임의배경색과같은프레임을그린다. 디폴트색상은 BLACK이다. SS_BLACKRECT: 윈도우프레임의배경색과같은사각영역을그린다. 디폴트색상은 BLACK이다. SS_GRAYFRAME: 바탕화면의배경색과같은프레임을그린다. 디폴트색상은 GRAY 이다. SS_GRAYRECT: 바탕화면의배경색과같은사각영역을그린다. 디폴트색상은 GRAY 이다. SS_WHITEFRAME: 일반창의배경색과같은프레임을그린다. 디폴트색상은 WHITE이다. SS_WHITERECT: 일반창의배경색과같은사각영역을그린다. 디폴트색상은 WHITE 이다. 기타 : SS_SIMPLE, SS_NOPREFIX, SS_USERITEM, SS_ICON, SS_BITMAP, SS_CENTERIMAGE CStatic 객체에서 WS_CHILD와 WS_VISIBLE은거의항상나타난다. WS_DISABLED을사용하는것은대부분의경우의미가없다. 그외의모든속성은레이블의외관에영향을미치는선택항목이다. CStatic 텍스트외관 아래코드는 3 절의소스코드에서생성자함수 CHelloWindow() 만조금고친것이다. CHelloWindow::CHelloWindow() { // Create the window itself Create(NULL, _T("CStatic Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle

17 CRect r; GetClientRect(&r); r.inflaterect(-40, -20); } // Create a static label cs = new CStatic(); cs->create(_t("hello world"), WS_CHILD WS_VISIBLE WS_BORDER SS_CENTER, r, this); 이코드에서의주요변화는텍스트컨트롤의위치와크기를나타내기위해 CRect(50, 80, 250, 150) 을사용하는대신, 주실행창클라이언트영역안에상하좌우각기 20 픽셀씩의여백을갖는사각영역을계산하여사용하는것이다. 이를위해 CRect 타입의변수 r을선언한다음, CHelloWindow::GetClientRect(&r) 함수를호출하고있다. GetClientRect() 함수는원래 CWnd 클래스에서상속된것인데, 창의클라이언트영역을나타내는좌표들을 CRect 객체에받아오기위해사용된다. CRect::InflateRect() 함수는 2개의정수파라미터를취하는데, 각기좌우및상하방향으로사각영역을확대하기위해사용된다. 여기서는실인수로각기 -20을사용하였으므로확대대신축소된다 (CRect::DeflateRect() 함수참고 ). 또다른변화는 WS_BORDER 스타일을 CStatic::Create() 함수의스타일파라미터로추가한것이다. 이프로그램의실행결과를오른쪽에보인다. cs->create() 함수에서한줄에표시될수없는긴스트링을사용한예제와실행결과는다음과같다. cs->create(_t("now is the time for all good men to come to the aid of their country"), WS_CHILD WS_VISIBLE WS_BORDER SS_CENTER, r, this); SS_LEFTNOWORDWRAP 의효과를보이기위한예제와실행결과는다음과같다

18 cs->create(_t("now is the time for all good men to come to the aid of their country"), WS_CHILD WS_VISIBLE WS_BORDER SS_LEFTNOWORDWRAP, r, this); SS_BLACKFRAME의효과를보이기위한예제와실행결과는다음과같다. cs->create(_t("hello world"), WS_CHILD WS_VISIBLE SS_BLACKFRAME, r, this); SS_GRAYRECT의효과를보이기위한예제와실행결과는다음과같다. cs->create(_t("hello world"), WS_CHILD WS_VISIBLE SS_GRAYRECT, r, this); 폰트 CStatic 객체에서사용되는폰트를변경하기위해서는 CFont 객체를이용한다. CStatic 객체를먼저생성한후, CFont 객체를생성한다. CFont::CreateFont() 함수를사용하여폰트를정한다음, CWnd::SetFont() 함수를사용하여새로정해진폰트를 CStatic 객체와연결해준다. CreateFont() 함수의프로토타입은아래와같다. BOOL CreateFont(int nheight, int nwidth, int nescapement, int norientation, int nweight, BYTE bitalic, BYTE bunderline, BYTE cstrikeout, BYTE ncharset, BYTE noutprecision, BYTE nclipprecision, BYTE nquality, BYTE npitchandfamily, LPCTSTR lpszfacename); 이중자주사용되는파라미터 3개만살펴보자. nheight = 36은포인트단위의글자크기를나타내는데, 10 포인트가일반텍스트용글자크기이며, 이책의본문글자크기는 11 포인트를사용하고있다. nweight = 700은글자의굵기를나타내는데, 400이면보통굵기이며 700 이면진한글씨체 (boldface) 이다. lpszfacename은윈도우운영체제에서사용될수있는글꼴의종류를나타내는데, Arial, Courier New, Symbol, Times New Roman 등등의수많은글꼴들이있다

19 CHelloWindow::CHelloWindow() { CRect r; // Create the window itself Create(NULL, _T("CStatic Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle GetClientRect(&r); r.inflaterect(-40, -20); // Create a static label cs = new CStatic(); cs->create(_t("hello World"), WS_CHILD WS_VISIBLE WS_BORDER SS_CENTER, r, this); } // Create a new 36 point Arial font CFont *font = new CFont(); font->createfont(36, 0, 0, 0, 700, 0, 0, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH FF_DONTCARE, _T("Arial")); // Cause the label to use the new font cs->setfont(font); 3.5 메시지맵 (message map) 응용프로그램에서창안에배치한사용자인터페이스요소는두가지제어가능한특성을갖는데, 이들은외관과이벤트반응동작이다. 4절에서 CStatic 컨트롤의예를통해사용자인터페이스요소의외관을조정하기위해스타일속성을이용한다는것을살펴보았다. 이러한방식은 MFC 안의모든컨트롤클래스들에적용된다. 이절에서는메시지맵과간단한이벤트처리의이해에도움을주기위해먼저 CButton 컨트롤을살펴본다. 또컨트롤이아니라창자체에서발생하는이벤트들에대한처리방법도알아본다. 그런다음조금더복잡한예로 CScrollBar 컨트롤의경우를알아볼것이다

Programming hwp

Programming hwp CHelloWindow::CHelloWindow() { CRect r; // Create the window itself Create(NULL, _T("CStatic Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle GetClientRect(&r);

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Programming hwp

Programming hwp 4 장대화상자기반응용프로그램 3장에서는윈도우응용프로그램작성을위한 MFC 프로그래밍에텍스트편집기만을사용하였으나, 이장에서부터는응용프로그램마법사 (AppWizard), 리소스편집기, 클래스마법사 (Class Wizard) 등의도구를활용한다. 이러한도구들의이용으로전체프로그램소스에서프로그래머가직접코딩하는분량을크게줄일수있어빠른시간안에응용프로그램의개발이가능해진다. 또한

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont 12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다. 12.1 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont( in LPDIRECT3DDEVICE9 pdevice, in INT Height, in UINT

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

1장 윈도우 프로그래밍 들어가기

1장 윈도우 프로그래밍 들어가기 1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout

More information

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D> 01 : 윈도우프로그래밍기초 학습목표 윈도우운영체제와윈도우응용프로그램의특징을이해한다. SDK 응용프로그램작성과정, 기본구조, 동작원리를이해한다. MFC 응용프로그램작성과정, 기본구조, 동작원리를이해한다. 비주얼 C++ 개발환경사용법을익힌다. 윈도우운영체제특징 (1/3) 그래픽사용자인터페이스 1 윈도우운영체제특징 (2/3) 메시지구동구조 이벤트발생... 대기

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

5장 MFC기반 다지기

5장 MFC기반 다지기 5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

More information

Programming hwp

Programming hwp 3 장 MFC 프로그래밍 윈도우응용프로그램개발을용이하게할수있도록 Visual C++ 에서는 MFC 클래스라이브러리와응용프로그램마법사 (AppWizard), 클래스마법사 (ClassWizard), 리소스편집기 (Resource Editor) 등의다양한도구를제공하고있다. 이장에서는응용프로그램마법사등의도구들은사용하지않고 MFC만을사용하여윈도우응용프로그램을작성하는방법을설명한다.

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - Chap12-OOP.ppt 객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

More information

<4D6963726F736F667420576F7264202D20495420C1A6BEC8BCAD20C0DBBCBAB0FA20C7C1B8AEC1A8C5D7C0CCBCC720B1E2B9FD2E646F63>

<4D6963726F736F667420576F7264202D20495420C1A6BEC8BCAD20C0DBBCBAB0FA20C7C1B8AEC1A8C5D7C0CCBCC720B1E2B9FD2E646F63> IT 제안서 작성과 프리젠테이션 기법 프리젠테이션은 현장에서 고객의 반응을 쉽게 파악할 수 있다는 장점이 있다. 하지만 프리젠테이션을 위해 자료를 준비하고 발표하는 작업은 그리 쉽지 않아 프리젠터는 부단한 노력이 필요하다. 이번 강좌에서는 제안서와 프리젠테이션의 차이점을 살펴보고 성공적인 프리젠테이션 절차와 방법을 알아본다. 고홍식 넷모어정보통신 교육센터 대표이사

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 8 장컨트롤과리소스 II 8.1 탭컨트롤 8.2 슬라이더컨트롤실습 8-1 도형의종류와색상출력하기 8.3 스핀컨트롤 8.4 프로그레스바컨트롤 8.5 IP 주소컨트롤 8.6 네트워크주소컨트롤 8.7 날짜 / 시간컨트롤 8.8 애니메이트컨트롤실습 8.2 데이터전송시뮬레이터작성하기 컨트롤및리소스 리스트컨트롤 (List Control) 트리컨트롤 (Tree Control)

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

Visual C++의 개요

Visual C++의 개요 2.1 MFC 의개요 2.2 MFC 프로그램의구조 2.3 Visual C++ 의시작실습 2-1 Application Wizard 익히기 2.4 SDI 템플릿 2.5 MDI 템플릿 2.6 MFC 애플리케이션아키텍처실습 2-2 간단한 MFC 프로젝트만들기 MFC 의개요 MFC 윈도우애플리케이션을생성하기위해만들어진 C++ 클래스라이브러리 애플리케이션프레임워크를제공

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Microsoft PowerPoint - 09-CE-5-윈도우 핸들 순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 객체지향프로그래밍응용 Chap 2. 프로그램의뼈대 2012.09.17. 오병우 컴퓨터공학과금오공과대학교 윈도우프로그램각부분의명칭 타이틀바 메뉴 프레임윈도우오브젝트 메뉴오브젝트 도구모음 툴바오브젝트 스크롤바 클라이언트영역 뷰오브젝트 상태표시줄 상태바오브젝트 Department of Computer Engineering 2 Win32 Application API

More information

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

Microsoft PowerPoint - additional06.ppt [호환 모드]

Microsoft PowerPoint - additional06.ppt [호환 모드] 보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

C++ Programming

C++ Programming C++ Programming 클래스와데이터추상화 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 객체지향프로그래밍 클래스와객체 2 객체지향프로그래밍 객체지향언어 (Object-Oriented Language) 프로그램을명령어의목록으로보는시각에서벗어나여러개의 독립된단위, 즉 객체 (Object) 들의모임으로파악

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#2) 2012.10.08. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금, 8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

게임 기획서 표준양식 연구보고서

게임 기획서 표준양식 연구보고서 ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ

More information

PowerPoint Template

PowerPoint Template 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt 포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical Use

VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical Use VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical User Interface) 형태로작성된프로그램은사용자가자신의의도를쉽게반영하고그결과를빠르게눈으로확인할수있다는장점이있다.

More information

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권 마감하루전 Category Partitioning Testing Tool Project Team T1 Date 2017-05-12 Team Information 201111334 김강욱 201211339 김진욱 201312243 김동권 201510411 이소영 [ 마감하루전 ] T1 1 INDEX Activity 2041. Design Real Use Cases

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 03 일단짜보는그럴듯한 C 프로그램... 1. 프로그램작성순서복습 2. 주석 3. scanf_s( ) 맛보기 1. 프로그램작성순서복습 프로그래밍작성순서요약 프로젝트만들기 : 소스파일보다프로젝트를먼저생성해야함 코딩 : C 컴파일러가알아들을수있는형식으로문서작성 빌드 : 컴파일과링크를합친개념 컴파일 : 소스를컴퓨터가이해하는오브젝트파일로변환 링크 :

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information