<322E20C0A9B5B5BFECC1EE20C7C1B7CEB1D7B7A1B9D620C3E2B7C22E687770>

Size: px
Start display at page:

Download "<322E20C0A9B5B5BFECC1EE20C7C1B7CEB1D7B7A1B9D620C3E2B7C22E687770>"

Transcription

1 2. 윈도우즈 프로그래밍 출력 1. GDI와 DC 2. 텍스트 출력 3. 그래픽 출력 4. 다양한 텍스트 출력과 그래픽 방법 5. 매핑모드 6. API 메시지와 함수정리 7. 프로그램 연구 8. 실습문제 - 1 -

2 2. 1. GDI와 DC - 윈도우즈 OS에서는 하드웨어 제조회사들이 마이크로소프트사에서 미리 정해놓은 사양에 따라 해당 하드웨어를 구동할 수 있는 구동 프로그램(디 바이스 드라이버 소프트웨어)를 작성하여 배포 - 프로그래머는 어떤 하드웨어가 현재 시스템에 설치되어 있는지 신경 쓸 필요가 없음 - 비디오카드를 생산하는 제조회사도 자신들의 비디오카드에 대한 드라이 버 소프트웨어를 제공 - 윈도우즈 OS는 출력을 디바이스 드라이버와 통신을 통해서 하게 됨 GDI32.DLL GDI32.DLL 디바이스 디바이스 드라이버 드라이버 프린터, 프린터, 화면 화면 등 그래픽 함수들과 객체들이 정의되어 있음 ex) 네모 하나 그려주세요 >> GDI(Graphic Device Interface) - GDI는 선 그리기, 컬러 관리와 같은 그래픽 함수들을 구현하는 일을 담 당하는 윈도우즈의 구성요소 - 디스플레이, 프린터, 기타 장치에 대한 그래픽 출력을 위하여 응용 프로 그램이 사용할 수 있는 함수와 그에 관련된 구조를 제공 - 이를 이용하여 직선, 곡선, 다각형, 텍스트, 비트맵(bitmap) 이미지를 구 현할 수 있다. - GDI와 관련된 파일은 윈도우즈의 시스템 폴더 밑에 있는 "GDI32.DLL" 파일이다. - GDI32.DLL에는 GDI관련 함수들과 객체들이 정의되어 있다

3 >> GDI객체와 관련 MFC - 펜 : 선 그리기(CPen) - 브러시 : 영역 채우기(CBrush) - 폰트 :글꼴(CFont) - 팔레트(CPalette) - 리전(CRgn) - 비트맵(CBitmap) >> 윈도우즈에서 출력하는 방법 - WM_PAINT메시지 밑에서 - 출력하고자 하는 DC핸들 얻기 - 출력하기 - 해당 DC소멸 >> DC(Device Context) - 윈도우즈는 매우 강력한 그래픽 기능을 제공한다. - 화면 출력하는 방법을 아주 세세한 부분까지 프로그래머가 제어할 수 있 다. - 선이나 글자를 하나 출력하더라도 색깔, 두께, 모양, 위치 등 그것을 어 떻게 출력할 것인가에 대한 수많은 옵션을 설정할 수 있다. - 세세하게 제어할 수 있는 장점이 있지만 모든 옵션을 일일이 설정해야 하는 번거로움이 따르게 된다. - 그래서 등장한 개념이 바로 DC(Device Context)이다. >> DC와 DC핸들 - DC는 그래픽과 관련된 모든 옵션을 모아놓은 구조체이다. - 그냥 간단히 출력하고자 하면 디폴트로 설정된 DC를 이용하여 바로 출 력을 하면 되고, 보다 세밀한 출력을 하고 싶은 경우에만 관련 옵션을 변경한 후에 출력을 한다. - 윈도우즈에서는 출력장치에 무엇인가를 출력하기 위해서는 반드시 DC 가 필요하다. - 보통 해당 DC핸들을 얻은 후 출력을 한다

4 - 화면에 출력을 하려면 화면에 대한 DC핸들을 얻어야 하며, 프린터로 출 력하려면 프린터 DC핸들을 얻어야 한다. - 한 화면에서도 윈도우마다 DC를 가지고 있다. - DC핸들은 출력대상을 나타내는 구분 번호라고 생각하면 쉽다. - 모든 GDI함수들은 첫 번째 인자로 DC핸들을 필요로 한다.. LineTo(hdc, 30, 50);. TextOut(hdc, 20, 50, "소프트",6);. Rectangle(hdc,10,10,50,50); >> 윈도우즈에서 제공하는 DC - 화면출력을 위한 디스플레이 DC - 프린터나 플로터 출력을 위한 프린터 DC - 비트맵 출력을 위한 메모리 DC - 디바이스 정보를 얻기 위한 정보 DC - Structure that defines a set of graphic objects and their attributes, and the graphic modes that affect output. In addition, the device context (DC) refers to a physical output device-its name, device driver, and other attributes. GDI function call parameters contain a handle to a DC to include the attributes of the specified device. There are four types of DC: display (supports drawing operations on a video display terminal), printer (supports drawing operations on a printer or plotter), memory (supports drawing operations on a bitmap), and information (supports retrieval of device data.) >> 윈도우즈에서 출력은 WM_PAINT메시지에서 하세요!! - 윈도우의 크기가 변경되었을 때나 다른 윈도우에 가려져 있다가 드러날 때 등 화면에 출력된 결과가 깨질 수 있다. - OS는 깨진 화면을 복구해주지 않는다. - 단지 OS는 화면이 깨질 때 마다 WM_PAINT메시지를 발생시켜준다. - 그래서 출력은 반드시 WM_PAINT메시지 아래에서 해야한다!! - 그래야 화면이 깨질 때 마다 WM_PAINT메시지가 발생하고 그 아래에 작 성한 소스가 다시 실행되어 화면이 복구된다!! - 화면이 깨지지 않는 것 같지만 사실은 깨질 때마다 열심히 다시 그리는 것이다!! - 4 -

5 >> WM_PAINT 메시지가 발생하는 경우 - 클라이언트 영역이 다시 그려져야 할 필요가 있을 때 윈도우즈 OS가 보 내는 메시지로 대부분의 출력은 이 메시지 처리부에서 작성해야 한다. - 윈도우의 클라이언트 영역 중 일부가 무효화(invalid)되면 OS가 이 메시 지를 큐에 넣어준다. - 다음과 같은 경우에 OS는 WM_PAINT메시지를 프로그램에 전달한다.. 윈도우가 처음 생성되었을 때. 윈도우의 위치가 이동되었을 때. 윈도우의 크기가 변경되었을 때. 최대, 최소화되었을 때. 다른 윈도우에 가려져 있다가 드러날 때. 파일로부터 데이터를 출력할 때. 출력된 데이터의 일부분을 스크롤, 선택, 변화시킬 때. InvalidateRect(), InvalidateRgn()함수를 호출하여 강제로 화면을 무효화시킬 때 화면의 그래픽 일부가 사라져서 다시 출력해야 할 필요가 있는 영역을 무효화 (invalid) 영역이라 하고 이러한 경우를 화면이 무효화되었다고 한다. >> WM_PAINT 메시지의 특징 - 이 메시지를 받았을 때 해당 프로그램은 화면 복구를 위해 클라이언트 영역 전체 또는 무효화된 부분만 다시 그려야 한다. - OS는 화면이 무효화될 때 클라이언트 영역을 복구해 주지 않는 대신에 이 메시지를 보내 줌으로써 해당 프로그램에게 다시 그려야 할 시점을 알려 준다. - 따라서 클라이언트 영역에 출력한 정보는 모두 저장해 두어야 복구가 가 능하다. - WM_PAINT메시지는 모든 메시지 중에서 우선 순위가 가장 낮다. - GetMessage()함수는 메시지 큐에 WM_PAINT메시지가 있더라도 다른 메시지가 대기중이면 그 메시지를 먼저 처리한다. - WM_PAINT메시지는 큐에 대기중인 다른 메시지가 없고 무효화 영역이 존재할 때만 윈도우 프로시저로 보내진다. - WM_PAINT메시지는 한번에 하나만 메시지 큐에 들어갈 수 있다. - 만약 무효화 영역이 생겼는데 WM_PAINT메시지가 이미 메시지 큐에 있 으면 기존의 무효화 영역과 새 무효화 영역의 합으로 새로운 무효화 영 역이 설정된다

6 >> WM_PAINT 메시지에서 그리기 - 해당 윈도우 프로시저에서 이 메시지를 처리하지 않으면 이 메시지는 DefWindowProc()함수가 처리한다. - 이 함수는 무효영역을 모두 유효화(valid)하며 다시 그리기는 하지 않는 다. - 만약 비 클라이언트 영역도 그려져야 한다면 WM_NCPAINT메시지를 전 달하며, 배경을 지워야 한다면 WM_ERASEBKGND메시지를 전달한다. - WM_PAINT메시지에서 그리기를 할 때는 BeginPaint()와 EndPaint()함 수를 사용해야 한다. - 이 두 함수는 WM_PAINT메시지 내에서만 사용되며 다시 그려야 할 영역 에 대한 정확한 좌표를 조사하며 무효영역을 유효화하고 캐럿을 숨기거 나 배경을 지우는 등의 꼭 필요한 동작을 한다

7 2.2. 텍스트 출력 - 윈도우즈에서 출력하기 위해서는 WM_PAINT 메시지 처리부에서 관련 소스를 작성해야 한다. - 그렇지 않으면 윈도우의 크기를 변경하거나 다른 윈도우에 의해서 가려 졌을 경우 화면이 복구되지 않는다. - 화면에 출력을 위해서는 3장의 예제 3.2의 WndProc()함수의 switch case문에 다음과 같은 case문을 만들고 그 밑에 필요한 출력코드를 작 성하면 된다. - switch ( umsg ) { case WM_PAINT: 이 부분에 출력코드 작성 : >> DC를 얻고 해제하는 방법 - 출력을 하기 위해서는 제일 먼저 출력대상에 대한 DC핸들을 얻어야 한 다 - 출력이 끝났으면 반드시 해제하여야 한다. - DC는 GDI모듈의 내부 스택을 많이 사용하기 때문에 사용 후 반드시 해 제해야 한다. - DC를 얻고 해제하는 방법은 다음과 같다.. BeginPaint()와 EndPaint():WM_PAINT메시지와 함께 사용. GetDC()와 ReleaseDC():잠시 출력할 때 사용. CreateDC() 와 DeleteDC():DC 를 만들어 사용. GetWindowDC() 와 ReleaseDC(): 비클라이언트 영역을 그리고자할 때 WM_NCPAINT 메시지와 함께 사용. CreateDC() 와 DeleteDC() : DC에 출력하지 않고 정보만 얻고자 할 때 사용. CreateCompatibleDC()와 DeleteDC(): 이미 있는 DC 와 같은 또 하나의 DC 만들 때 사용. 보통 디스플레이를 이용한 메모리 DC를 만들 때 사용 - 7 -

8 DC를 얻고 해제하는 방법 1: >> BeginPaint()와 EndPaint() - 이 함수들은 WM_PAINT메시지 처리부분에서만 사용하며 그 사용법은 다음과 같다. - HDC hdc PAINTSTRUCT ps case WM_PAINT: hdc=beginpaint(hwnd, &ps); 이 부분에 출력에 관련된 코드 작성 EndPaint(hWnd, &ps); - BeginPaint()함수는 DC를 할당하고 갱신된 영역에 대한 정보를 PAINTSTRUCT구조체형으로 반환하는 함수이다. - PAINTSTRUCT구조체형의 변수 ps가 call by reference로 반환됨을 볼 수 있다. >> BeginPaint함수 - 그리기를 위해 DC핸들을 리턴한다. 이 핸들은 PAINTSTRUCT형 구조체 의 첫 번째 멤버 hdc에도 대입된다. 또한 캐럿이 있으면 캐럿을 숨기 며, 무효화 영역이 배경을 지우도록 요청하면 WM_ERASEBKGND메시 지를 보내 배경을 지우도록 한다. 또한 WM_NCPAINT메시지를 보내 비 클라이언트 영역을 그리도록 한다. DC핸들을 얻는 GetDC()함수는 클 리핑 영역 계산이나 무효화 영역 유효화를 해 주지 않으므로 WM_PAINT에서는 사용할 수 없다. - HDC BeginPaint( HWND hwnd, // handle to window LPPAINTSTRUCT lppaint // pointer to structure for paint information ); - 인자값 hwnd는 그리기를 할 윈도우 핸들로 윈도우 프로시저의 첫번째 인자로 전 달된 hwnd 핸들을 넘겨주면 된다. lppaint는 그리기 정보를 call by reference로 리턴받기 위한 구조체이다. - 리턴값 DC핸들을 리턴해 준다. 어떠한 DC도 얻을 수 없어서 에러가 발생하면 - 8 -

9 NULL을 리턴한다. >> EndPaint 함수 - WM_PAINT메시지 내에서 DC를 반환하며 그리기를 종료하기 위해 사용 된다. BeginPaint()함수와 항상 쌍을 이루어 사용되며 캐럿을 다시 화 면으로 출력해 주는 역할을 한다. - BOOL EndPaint( HWND hwnd, // handle to window CONST PAINTSTRUCT *lppaint // pointer to structure for paint data ); - 인자 값 hwnd는 그리기를 한 윈도우의 핸들이며, lppaint는 그리기 정보를 가지 고 있는 PAINTSTRUCT형 구조체의 포인터로 BeginPaint()함수에서 사용한 변수를 쓰면 된다. - 리턴값 항상 TRUE를 리턴한다. >> 구조체 COLORREF - 색깔을 지정할 때 많이 사용 - 컴퓨터에서 사용하는 색은 빛의 삼원색인 적색(Red), 녹색(Green), 청 색(Blue)을 각각 8비트로 표현한다(RGB). - COLORREF는 이 RGB값을 32비트로 표현한다. - R값이 255이면 적색이 최대이고 0이면 최소이다. - R, G, B값이 모두 255이면 하얀색이고 0이면 검정색이 된다. - RGB값이 같은 256가지((0,0,0) (255,255,255))를 그레이레벨(Gray level)이라 한다. - 녹색을 만들려고 하면 COLORREF형 변수 color에 RGB매크로를 이용 하여 다음과 같은 값을 대입하면 된다. - COLORREF color=rgb(0,255,0); - RGB매크로는 BYTE단위로 각 인자는 R, G, B의 크기를 나타내다

10 COLORREF RGB( BYTE bred, // red component of color BYTE bgreen, // green component of color BYTE bblue // blue component of color ); 실 습 1) - 다음과 같이 출력하는 프로그램을 작성하시오. - 윈도우의 크기를 변경시키거나, 윈도우의 일부가 가려졌다 다시 보일 경 우 출력이 어떻게 되는지 확인해 보고 그 이유는? 시작좌표=(20픽셀,20픽셀) >> 소스 중 WM_PAINT메시지부 case WM_PAINT: // 화면을 다시 그려야 할 때마다 반복 실행됨 { // BeginPaint() 함수를 이용하여, DC를 얻은 뒤 // TextOut() 함수를 이용하여 문자열을 출력한다. char *szmessage = "윈도우야 안녕!"; PAINTSTRUCT ps HDC hdc hdc= BeginPaint(hWnd, &ps); TextOut(hdc, 20, 20, szmessage, strlen(szmessage)); TextOut(hdc, 20, 50, "소프트",6); EndPaint(hWnd, &ps); } break;

11 DC를 얻고 해제하는 방법2: GetDC()와 ReleaseDC() - WM_PAINT메시지와 상관없이 언제든지 DC핸들을 얻고 해제하는 함수 이다. - 그래서 일시적인 출력을 할 경우에만 사용한다. - 즉, 화면에 감추어져 있다가 나타나거나 윈도우의 크기가 변하거나 프로 그램 내에서 InvalidateRect()나 InvalidateRgn()함수를 호출하게 되면, 화면이 무효화되어 WM_PAINT메시지가 발생되어 새로 화면을 갱신하 기 때문에 GetDC()함수와 ReleaseDC()함수를 이용하여 출력한 내용 은 사라지게 된다. - 보통 GetDC()함수와 ReleaseDC()함수는 잠시 출력하는 데이터나 단순 히 DC정보를 얻기 위해서만 사용한다. - 이 두 함수는 다음과 같이 항상 쌍으로 존재해야 한다. - HDC hdc hdc=getdc(hwnd); 이 부분에 출력에 관련된 코드 작성 ReleaseDC(hWnd, hdc); - GetDC()함수는 hwnd가 가리키는 윈도우에 대한 DC핸들을 반환한다. 실습 2) - 마우스 왼쪽 버튼을 누를 때마다 다음과 같이 클릭한 위치에 "안녕!"이라 는 문자열을 출력하는 프로그램을 작성하시오. - 윈도우의 크기를 변경시키거나, 윈도우의 일부가 가려졌다 다시 보일 경 우에 출력이 어떻게 되는지 확인해 보고 그 이유는? 심화 실습 : 출력 문자열 "왼쪽"으로 변경 오른쪽 버튼 누르면 "오른쪽"출력

12 -HDC hdc case WM_LBUTTONDOWN://WM_PAINT메시지 아님 hdc=getdc(hwnd); TextOut(hdc,LOWORD(lParam),HIWORD(lParam),"안녕!",5); ReleaseDC(hWnd,hdc); break;

13 DC를 얻고 해제하는 방법3: >> CreateDC()와 DeleteDC() - 지금까지는 윈도우 핸들과 함께 해당 DC를 얻었다. - 그러나 DC만 따로 만들 필요가 생긴다. - 예를 들어 모니터 전체 화면의 DC를 얻고자 할 경우로, 이러한 경우에 는 CreateDC()함수와 DeleteDC()함수를 이용하여 다음과 같이 하면 된다. - HDC hdc char *szmessage = "윈도우야 안녕!"; hdc=createdc("display",null,null,null); TextOut(hdc, 100, 100, szmessage, strlen(szmessage)); DeleteDC(hdc);

14 DC를 얻고 해제하는 방법4: >> GetWindowDC()와 ReleaseDC() - 이 함수는 비클라이언트 영역을 그리고자 할 때 WM_NCPAINT메시지와 함께 사용한다. LRESULT CALLBACK WndProc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) { char *szmessage = "윈도우야 안녕!"; switch ( umsg ) { case WM_NCPAINT: hdc=getwindowdc(hwnd); TextOut(hdc, 1, 1, szmessage, strlen(szmessage)); ReleaseDC(hWnd,hdc); break; case WM_DESTROY: PostQuitMessage(0); break; default : return DefWindowProc( hwnd, umsg, wparam, lparam ); } return 0; } Non-client 영역 클라이언트 영역

15 DC를 얻고 해제하는 기타 방법 - CreateDC()와 DeleteDC() - 이 함수는 DC에 출력하지 않고 정보만 얻고자 할 때 사용한다. - CreateCompatibleDC()와 DeleteDC() - 이미 있는 DC와 같은 또 하나의 DC를 만들 때 사용한다. - 보통 디스플레이를 이용한 메모리 DC를 만들 때, 비트맵을 화면으로 출 력할 때 사용한다. >> 다양한 텍스트 출력 함수 - DrawText() : 박스영역에 출력하는 함수 - ExtTextOut() : 박스영역 및 설정 문자 출력 함수 - TabbedTextOut() : 탭키에 대응하여 문자 출력하는 함수 - SetBkColor() : 배경색 지정하는 함수 - SetBkMode() :새로 출력되는 문자열의 배경을 어떻게 처리할 것인가를 지정하는 함수 - SetTextColor() : 문자의 출력색을 설정하는 함수 - CreateFont() : 폰트 만들 때 사용하는 함수

16 2.3. 그래픽 출력 점그리기 - 화면에 하나의 점( 픽셀) 을 출력하는데 사용하는 함수는 SetPixel() 이다. - 다음은 (100,50) 좌표에 녹색의 한 점을 찍는 방법이다. - COLORREF crcolor=rgb(0,255,0); SetPixel(hdc, 100, 50, crcolor); - SetPixel(hdc, 100, 50, RGB(0,255,0)); - 픽셀은 그래픽의 최소단위이나 많이 사용하지는 않으며, 특정좌표의 픽셀의 색을 얻고자 하면 GetPixel() 함수를 사용한다 선그리기 - 선을 그릴 때는 MoveToEx() 함수와 LineTo() 함수를 쌍으로 사용한 다. - MoveToEx() 함수는 시작점으로 그리기 좌표를 이동시키는 기능을 하며 LineTo() 함수는 그 위치까지 선을 그린다. - (10,20) 에서 (30,50) 까지 선을 긋고 싶다면 다음과 같이 두 함수 를 쌍으로 사용하면 된다. - MoveToEx(hdc, 10, 20, NULL); LineTo(hdc, 30, 50);

17 실습 3) 마우스왼쪽 버튼을 누를 때마다 다음과 같이 그 좌표부터 각 방향으로 길이가 50인 선을 그리는 프로그램을 작성하시오. case WM_LBUTTONDOWN: hdc=getdc(hwnd); MoveToEx(hdc,LOWORD(lParam),HIWORD(lParam), NULL); LineTo(hdc,LOWORD(lParam)+50,HIWORD(lParam)+50); ReleaseDC(hWnd,hdc); break; 심화 실습 : 왼쪽버튼은 수직선, 오른쪽버튼은 수평선 출력하는 프로그램 을 작성하시오

18 실습 4) 실습 3을 WM_PAINT메시지 아래에서 구현하시오. LRESULT CALLBACK WndProc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) { static int x=0,y=0;// 처음 실행시 한번만 초기화 switch ( umsg ) { HDC hdc PAINTSTRUCT ps case WM_LBUTTONDOWN: x=loword(lparam); y=hiword(lparam); InvalidateRect(hWnd,NULL,FALSE); break; case WM_PAINT: hdc=beginpaint(hwnd,&ps); MoveToEx(hdc,x,y, NULL); LineTo(hdc,x+50,y+50); EndPaint(hWnd,&ps); break; case WM_DESTROY: PostQuitMessage(0); break; default : return DefWindowProc( hwnd, umsg, wparam, lparam ); } return 0; } InvalidateRect(hWnd,NULL,TRUE );로 수정한 후 결과를 확인해 보자. 매번 배경을 지우고 출력하므로 가장 최근의 마우스 클릭 위치에만 선이 그려지는 것을 확인할 수 있다. 이 프로그램은 WM_PAINT메시지에서 출력하고 있으므로 화면이 무효화되었을 때 화면을 복구 할까? 그렇지 않다. WM_PAINT메시지에서 출력하고 있지만 마우스 좌표는 가장 최근의 좌표 만 기억하고 있다. 그래서 윈도우의 크기를 변경시킨다든지 하면 가장 최근에 클릭한 위치만 복구됨을 확인할 수 있다. 모든 선을 복구하려면 좌표값을 배열이나 연결 리스트(linked list)에 모두 저장하고 있어야 하 며, 각 위치에 반복해서 출력해주면 된다

19 >> auto와 static변수의 차이 #include <iostream.h> void sub(); void main() { sub(); sub(); sub(); } void sub() { auto int x=10; static int y=10; cout<<x<<y<<' \n'; x++; y++; } auto변수. 함수나 블록을 진입하면 기억영역이 확보되고, 벗어나면 기억 영역은 소거됨. 스택(stack)을 일시적으로 사용. 해당 함수(블록) 내에서만 유효한 지역(local)변수. 생략가능 - static변수. 프로그램이 종료될 때까지 자료를 기억 장소에 유지. 프로그램이 실행될 때 생성되고 프로그램이 종료될 때 시스템에 반환. 처음 실행시 한번만 초기화

20 2.3.3 도형그리기 - 사각형은 Rectangle()함수를 이용하여 그린다. - BOOL Rectangle(hdc, nleftrect, ntoprect, nrightrect, nbottomrect) - 모서리가 둥근 사각형을 그릴 때는 RoundRect() 함수를 사용한다. - 원을 그리는 함수는 Ellipse(), Arc(), Chord(), Pie() 등이 있다.. Ellipse() 함수는 설정한 사각형 영역에 맞는 원. Arc() 함수는 설정된 영역에 시작좌표에서 끝 좌표까지 원호. Chord() 함수는 현. Pie() 함수 부채꼴 실습 5) 마우스왼쪽 버튼을 누를 때마다 그 좌표부터 각 방향으로 길이가 50인 정사각형을 그리는 프로그램을 작성하시오. 힌트 ) 실습 4 의 소스에서 WM_PAINT 메시지 부분을 아래와 같이 수정. case WM_PAINT: hdc=beginpaint(hwnd,&ps); Rectangle(hdc,x,y,x+50,y+50); EndPaint(hWnd,&ps); break; 실습 6) 마우스왼쪽 버튼을 누를 때마다 그 좌표부터 각 방향으로 길이가 50인 정사각형과 그 영역을 채우는 원을 그리는 프로그램을 작성하시오. case WM_PAINT: hdc=beginpaint(hwnd,&ps); Rectangle(hdc,x,y,x+50,y+50); // 네모 Ellipse(hdc,x,y,x+50,y+50); // 원 EndPaint(hWnd,&ps); break;

21 2.3.4 다양한 텍스트 출력과 그래픽 방법 - 지금까지의 텍스트 출력은 시스템 폰트로, 그래픽은 검은색의 가는 선 으로, 도형의 내부는 흰색으로 채워져서 출력되었다. - 이는 디폴트DC를 사용했기 때문이다. - 그림판 프로그램은 왼쪽, 아래의 도구상자들을 이용해서 다양한 출력을 할 수 있다

22 2.3.5 맵핑모드 1) GDI객체(object)와 스톡 객체(stock object) - 다양한 출력을 하기 위해서는 그래픽 출력에 사용하는 도구인 GDI객체 (object)에 대해서 알아야한다.. 폰트, 펜, 브러시, 비트맵, 팔레트, 리전 등 - 그래픽을 출력하기 전에 DC 에 이러한 객체를 선택하므로서 다양 한 출력이 가능하다.. 그냥 선을 그리면 검은색 1 픽셀 실선이 그려지지만 빨간색 5 픽셀 점선 펜을 만들어 DC 에 선택한 후 그리면 GDI 는 이 펜을 사용하여 선을 그 리므로 빨간색 5 픽셀 점선이 그려진다. - 윈도우즈에서 기본적으로 제공하는 GDI객체를 스톡 객체(stock object) 라 한다.. OS 가 기본적으로 제공해 주므로 따로 생성하지 않고 사용할 수 있으며 해제하지 않아도 된다.. GetStockObject()함수를 사용하여 해당 스톡 객체 핸들을 얻을 수 있다.. 회색 스톡 브러시를 구해 윈도우 클래스의 바탕 브러시로 지정하는 예 : WndClass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH); 2) GDI객체 생성과 DC에 선택 - GDI객체를 만드는 함수. 펜: CreatePen, CreatePenIndirect. 브러시: CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush. 폰트( 글꼴): CreateFont, CreateFontIndirect. 리전 : CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreateRectRgn, CreateRectRgnIndirect. 비트맵: CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection - GDI객체를 DC에 선택하는 함수. HGDIOBJ SelectObject( HDC hdc, // handle to device context HGDIOBJ hgdiobj // handle to object );. hdc 는 DC 핸들이며, hgdiobj 는 DC 에 선택하고자 하는 GDI 객체 핸들이다. 이 객체는 CreateXXX 의 함수로 생성한 GDI 객체나 GetStockObject() 함수로 구한 스톡 객체이다

23 실습 7) 실습 5의 출력을 정사각형 내부를 회색으로 채워서 그리는 프로그램을 작성하시오. case WM_PAINT: HBRUSH hnewb,holdb hdc=beginpaint(hwnd,&ps); hnewb=(hbrush)getstockobject(gray_brush); holdb=(hbrush)selectobject(hdc,hnewb); Rectangle(hdc,x,y,x+50,y+50); SelectObject(hdc,hOldB); EndPaint(hWnd,&ps); break; SelectObject()함수에 의해 GDI객체를 DC에 선택한다. SelectObject()함수가 반환하는 값은 이전에 선택되어 있던 객체 핸들로 DC의 상태 복구를 위해 holdb변수에 저장한다. 출력하고 난 후에는 SelectObject(hdc,hOldB)를 호출하여 원래의 GDI 객체로 DC의 상태를 복구한다 심화 실습 : 검은색으로 채우기

24 3) 다양한 그래픽 출력 방법 - 윈도우즈에서 기본적으로 제공하는 GDI객체인 스톡 객체는 따로 생성 할 필요가 없어서 편리하지만 다양하게 그래픽을 하기에는 부족 - 다양한 출력을 위해서는 GDI객체를 만들어서 사용 - GDI객체를 만드는 함수는 앞의 "Create"로 시작하는 함수 - 일반적으로 다양한 그래픽을 하기 위한 절차. 우선 BeginPaint() 나 GetDC() 등의 함수를 이용하여 DC 를 생성. GetStockObject() 로 스톡 객체나 Create 로 시작하는 함수로 GDI 객체를 생성. 만든 GDI 객체를 SelectObject() 함수로 선택하고, 이 함수의 리턴값인 이전 의 GDI 객체를 그리기 작업을 다한 후 DC 를 원상 복구할 목적으로 보관. SetBkColor() 함수로 배경색을 설정하거나 Set 으로 시작하는 함수들을 이용 하여 다양한 설정. GDI 함수를 이용하여 그리기 작업. 그리기 작업이 다 끝난 후에는 보관해놓았던 이전 GDI 객체를 SelectObject() 함수로 선택하여 이전 DC 상태로 복구. 생성한 GDI 객체를 DeleteObject() 함수로 삭제. 생성했던 DC 를 EndPaint() 나 ReleaseDC() 함수로 소멸 1.DC 1.DC 생성:BeginPaint(), 생성:BeginPaint(), GetDC() GetDC() 등 2.스톡/GDI 2.스톡/GDI 객체 객체 생성:GetStockObject(), 생성:GetStockObject(), CreateXXX() CreateXXX() 3.DC에 3.DC에 GDI객체 GDI객체 선택하고 선택하고 이전의 이전의 GDI객체 GDI객체 보관:SelectObject() 보관:SelectObject() 4.배경색, 4.배경색, 전경색 전경색 등을 등을 DC에 DC에 설정 설정 :SetBkColor() :SetBkColor() 등 5.그래픽 5.그래픽 출력: 출력: Rectangle(), Rectangle(), TextOut() TextOut() 등 6.이전 6.이전 DC상태 DC상태 복구: 복구: SelectObject() SelectObject() 7.GDI 7.GDI 객체 객체 소멸: 소멸: DeleteObject() DeleteObject() 8.DC소멸: 8.DC소멸: EndPaint(), EndPaint(), ReleaseDC() ReleaseDC() 등

25 실습 8) 실습 6의 출력을 정사각형은 굵기 3픽셀인 녹색 실선으로, 원의 내부는 빨간색으로 채워서 그리는 프로그램을 작성하시오. // case WM_LBUTTONDOWN: x=loword(lparam); y=hiword(lparam); InvalidateRect(hWnd,NULL,FALSE); break; // case WM_PAINT: HBRUSH hnewb,holdb HPEN hnewp,holdp 펜 브러시 hdc=beginpaint(hwnd,&ps); hnewp=createpen(ps_solid,3,rgb(0,255,0)); //펜 만들기 holdp=(hpen)selectobject(hdc,hnewp); Rectangle(hdc,x,y,x+50,y+50); SelectObject(hdc,hOldP); DeleteObject(hNewP); //이 줄을 주석처리하면 hnewb=createsolidbrush(rgb(255,0,0)); //브러시 만들기 holdb=(hbrush)selectobject(hdc,hnewb); Ellipse(hdc,x,y,x+50,y+50); SelectObject(hdc,hOldB); DeleteObject(hNewB); EndPaint(hWnd,&ps); break 심화 실습 : 5픽셀 노란색 펜, 파란색 브러시

26 4) 레스터연산(ROP:Rater OPeration) - 현재 출력된 화면의 그림과 새로 그려지는 그림이 겹쳐질 때 어떻게 출 력될지를 결정 - 디폴트는 R2_COPYPEN으로 새로 그려지는 그림이 기존 그림을 덮어 버림 - ROP를 변경하는 함수. SetROP2(hdc,R2_XORPEN); - 현재 설정된 ROP를 구하는 함수(DC에 설정되어 있는 ROP를 반환). GetROP2() 실습 9) 실습 7의 Rectangle()함수 전에 "SetROP2(hdc,R2_XORPEN);"소스를 추가하여 출력 결과를 확인하시오. - 기존의 사각형과 XOR연산이 되어 겹치는 부분은 반전

27 5) 모니터 화면의 좌표체계 - 윈도우즈의 좌표체계는 픽셀 단위이다. - 그러나 때로는 이런 픽셀 단위의 좌표 체계가 프로그램에서 응용하기에 부적합할 수도 있다. - 예를 들어 화면(모니터)은 72dpi(dots per inch)의 저해상도이지만 프 린터는 보편적으로 600dpi 이상의 고해상도를 지원한다. - 모니터 화면의 좌표체계는 왼쪽상단이 (0,0)의 원점으로 사용되며, x축 좌표는 오른쪽으로 갈수록 증가하고 y축 좌표는 아래쪽으로 갈수록 증 가한다. - y축의 증가 방향이 수학에서 나오는 2차원 좌표계의 방향과 반대이다. 원점(0,0) x좌 표 증 가 방 향 y좌 표 증 가 방 향

28 6) 맵핑모드(mapping mode) - 좌표 체계(단위, x축, y축 증가 방향) - 논리적 좌표(logical coordinates)와 물리적 좌표(device coordinates). 논리적 좌표는 윈도우즈의 내부에서 사용되는 좌표를 말한다. : DC 핸들을 인자로 받는 모든 GDI 함수가 사용. 물리적 좌표는 실제 화면이나 프린터에 출력되는 좌표이며 픽셀이나 도트 단위를 사용한다. : 윈도우를 관리하는 함수나 메시지에서 사용하는 좌표 - 윈도우즈가 디폴트로 사용하는 맵핑 모드(MM_TEXT) 에서는 논리 적 좌표와 물리적 좌표가 일치되어 있기 때문에 어떠한 변환도 일어나지 않는다. - 맵핑 모드를 변경하면 화면에 출력되는 실제좌표는 달라진다. - 맵핑 모드 단위 x 증가방향 y 증가방향 MM_TEXT 픽셀 오른쪽 아래쪽 MM_LOMETRIC 0.1mm 오른쪽 윗 쪽 MM_HIMETRIC 0.01mm 오른쪽 윗 쪽 MM_LOENGLISH 0.01인치 오른쪽 윗 쪽 MM_HIENGLISH 0.001인치 오른쪽 윗 쪽 MM_TWIPS 1/1440인치(twip) 오른쪽 윗 쪽 MM_ISOTROPIC 가변 가 변 가 변 MM_ANISOTROPIC 가변 가 변 가 변 - 디폴트 맵핑 모드는 픽셀 단위인 MM_TEXT이며 나머지 맵핑 모드는 밀 리미터나 인치 등의 논리적인 단위를 사용한다. - 맵핑 모드를 변경할 때는 SetMapMode()함수를 사용한다.. int SetMapMode( HDC hdc, int fnmapmode ); - 현재 설정된 맵핑 모드를 알고 싶을 때는 GetMapMode()함수를 사용한 다.. int GetMapMode( HDC hdc );

29 실습 10 ) cos함수의 2주기를 출력하는 프로그램을 작성하시오. #include <windows.h> #include <math.h> #define PI // cos함수 사용 // 매크로 상수 HDC hdc PAINTSTRUCT ps double deg; int y; case WM_PAINT: hdc=beginpaint(hwnd,&ps); SetMapMode(hdc,MM_LOENGLISH); SetViewportOrgEx(hdc,300,300,NULL); Rectangle(hdc,-360,-100,360,100); TextOut(hdc,10,120,"1",1); TextOut(hdc,10,-110,"-1",2); MoveToEx(hdc, -1000, 0,NULL); // x좌표축 그리기 LineTo(hdc, 1000, 0); MoveToEx(hdc,0,-200,NULL); // y좌표축 그리기 LineTo(hdc,0,200); for(deg=-360;deg<360;deg++) { y=(int)(cos(deg*pi/180)*100); //라디안으로 변환 SetPixel(hdc, (int)deg, y,rgb(255,0,0)); } EndPaint(hWnd, &ps); break; >> 심화 실습 : sin은 녹색, tan는 파란색

Microsoft PowerPoint - 09-CE-7-선과 도형

Microsoft PowerPoint - 09-CE-7-선과 도형 순천향대학교컴퓨터학부이상정 1 학습내용 디바이스컨텍스트 WM_PAINT 선, 도형그리기 GDI 객체 펜, 브러쉬 순천향대학교컴퓨터학부이상정 2 디바이스컨텍스트 순천향대학교컴퓨터학부이상정 3 디바이스컨텍스트 (1) 윈도우즈에서화면출력 ( 텍스트출력과차이점 ) 화면을사용할수있는권한이제약 자신이차지하는영역에만그림을그릴수있다. 좌표를계산하는방법이다르다 자기의윈도우즈의좌표를기준으로출력

More information

윈도우즈 프로그래밍

윈도우즈 프로그래밍 윈도우프로그래밍및실습 003. 출력 DB & MINING LAB. Korea University 2 nd updated 2012. 08. 18 Last updated 2015. 08. 26 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter How to show some information on your screen

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Win32 API Windows Programming 1 http://idb.korea.ac.kr DB & Mining LAB. Korea Univ. 최종업데이트 : 2012. 08. 14 1 컴퓨터시스템의주요구성요소 2 2 컴퓨터하드웨어구성 Fetch : 메인메모리에저장되어있는명령어를 CPU 로 Decode : 컨트롤유닛에의해분석 Execution : ALU

More information

Chapter 1. MFC 시작하기

Chapter 1.  MFC 시작하기 Chapter 1. MFC 시작하기 1. MFC(Microsoft Foundation Class) 개요 2. Visual Studio 2015 프로그램설치하기 3. 마우스클릭프로그램작성 4. 그림그리기프로그램작성 5. 마우스좌표값구하기프로그램작성 1 1.1. MFC 개요 2 1.1.1. C++ 언어 객체지향언어 (Object-Oriented Programming,

More information

Microsoft PowerPoint - 04windows.ppt

Microsoft PowerPoint - 04windows.ppt Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

More information

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

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

More information

슬라이드 1

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

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.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

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 4 장. 화면출력 GDI 와 DC GDI(Graphics Device Interface) 윈도우운영체제에서그래픽출력을담당하는부분 장치독립성및멀티태스킹지원 운영체제의하위시스템중하나로 DLL 로존재 응용프로그램의요청을받아서실제출력장치에대한출력을담당 O/S 응용프로그램 GDI 장치출력장치드라이버

More information

MFC 프로그래밍

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

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

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

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

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

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, 2018 1 George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. 실행후 Problem 1.3에 대한 Display결과가 나와야 함) George 그림은 다음과

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

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

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

BMP 파일 처리

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

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.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

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

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

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

GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widw

GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widw Chapter 5. 그래픽처리 Widws Prgrammig, 2009 Fall GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widws Device

More information

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2007년가을학기 9/13/2007 박경신 2 윈도우운영체제특징 그래픽사용자인터페이스 (Graphical User Interface,

More information

08장 윈도우에서의 그리기

08장 윈도우에서의 그리기 8 장 윈도우에서의그리기 김성영교수 금오공과대학교 컴퓨터공학부 그래픽장치인터페이스객체 GDI 객체 객체의핸들타입 MFC 클래스속성 HPEN CPen 선속성 HBRUSH CBrush 채우기속성 HFONT CFont 글꼴속성 HBITMAP CBitmap 비트맵영상속성 HPALETTE CPalette 팔레트속성 HRGN CRgn 영역속성 GDI 클래스는 CGdiObject

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.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

쉽게 풀어쓴 C 프로그래밍

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

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

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

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드] Chap.2 Logo 프로그래밍기초 - 터틀그래픽명령어 ( 기본, 고급 ) 학습목표 터틀의이동과선그리기에대해살펴본다. 터틀의회전에대해살펴본다. 터틀펜과화면제어에대해살펴본다. 2012. 5. 박남제 namjepark@jejunu.ac.kr < 이동하기 > - 앞으로이동하기 forward 100 터틀이 100 픽셀만큼앞으로이동 2 < 이동하기 > forward(fd)

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

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

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2008년가을학기 9/16/2008 박경신 2 Windows.NET 구조적프로그램에서객체지향프로그램으로 SDK(Software Development

More information

슬라이드 1

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

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

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

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

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

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

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc DVR HDD PC Viewer Guide ADVR6000 / SWI5000 선운정보통신 소개 본 매뉴얼은 DVR의 하드디스크 PC 뷰워의 설명서입니다. 이 프로그램은 DVR에 장착되어 미리 포맷되고 녹화된 HDD에 저장된 영상들을 사용자의 PC에서 직접 보여줄 것입니다. DVR의 하드디스크-랙에서 분리된 하드디크스가 사용자의 PC에 연결됐다면 이 응용프로그램은

More information

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i ; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");

More information

Microsoft PowerPoint - IP11.pptx

Microsoft PowerPoint - IP11.pptx 열한번째강의카메라 1/43 1/16 Review 2/43 2/16 평균값 중간값 Review 3/43 3/16 캐니에지추출 void cvcanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size = 3); aperture_size = 3 aperture_size

More information

윈도우 프로그래밍

윈도우 프로그래밍 Windows Programming 2013. 3 출처 : 인터넷에서수집한 PT 자료 1. Overview Getting Started (1) 관련도서 Visual C++/API 프로젝트따라하기, 오진환, 컴스페이스 Programming Windows, Charles Petzold, Microsoft Press Windows application Programming

More information

1

1 2/33 3/33 4/33 5/33 6/33 7/33 8/33 9/33 10/33 11/33 12/33 13/33 14/33 15/33 16/33 17/33 5) 입력을 다 했으면 확인 버튼을 클릭합니다. 6) 시작 페이지가 제대로 설정이 되었는지 살펴볼까요. 익스플로러를 종료하고 다시 실행시켜 보세요. 시작화면에 야후! 코리아 화면이 뜬다면 설정 완료..^^

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

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열 - Part2-4 4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열 4.1 포인터와 1 차원배열 4.1 1 (1/16)- - - [4-1.c ] #include int main(void) { int array[3]={10, 20, 30}; } prind("%x %x %x

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

슬라이드 1

슬라이드 1 프로세싱 광운대학교로봇학부박광현 프로세싱실행 2 C:\processing-3.2.1 폴더 창나타내기 실행 정지 3 폭 높이 600 400 도형그리기 배경칠하기 5 background(255, 255, 255); R G B background(255, 0, 0); background(255, 122, 0); 선그리기 6 background(255, 122, 0);

More information

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가 수업주제 경찰 출동! (버튼, LED, 버저 사용하기) 9 / 12 차시 수업의 주제와 목표 본 수업에서는 이전 차시에 배웠던 블록들의 기능을 복합적으로 활용한다. 스위치 기능을 가진 버튼을 활용하여 LED와 버저를 동시에 작동시키도록 한다. 각 블록들을 함께 사용하는 프로젝트를 통해 각각의 기능을 익히고 보다 다양한 활용 방법을 구상할 수 있다. 교수 학습

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

디지털영상처리3

디지털영상처리3 비트맵 BMP 파일의 실제 BMP 파일의 BMP 파일을 화면에 개요 이해 분석 출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

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

04장 메시지 처리 유형

04장 메시지 처리 유형 4 장 메시지처리유형 김성영교수 금오공과대학교 컴퓨터공학부 메시지처리유형 윈도우에서발생하는이벤트에대응하는윈도우메시지를처리 2 장및 3 장의실습예제 자식윈도우에서발생한이벤트를부모윈도우에서처리 WM_COMMAND 메시지처리 실습 4.2 자식윈도우에서발생한사건유형을구분하여처리 Notification code 처리 실습 4.7 Notification code 의한계를극복하여처리

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

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

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770> 2010 학년도동계 계절수업시험문제지 출제위원 방송대김강현 학과명학번 - 성 명 감독관확인 ( 인 ) 교과목명 교과목코드 윈도우프로그래밍 3 7 출제범위 교재전체 ( 해당강의포함 ) 문항수 50 문항 [50 문항 2 점 =100 점 ] 유의사항 1. OMR 답안지및문제지인적사항표기는반드시컴퓨터용사인펜으로할것 2. 표기한답안은정정이일절불가하니답안표기에각별히유의할것

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - 11주차.pptx

Microsoft PowerPoint - 11주차.pptx 11 주차 비트맵버튼 & 폰트 그래픽객체의사용 This week, we will study Button 에사용자 graphic image를넣는방법 Edit box의색상변경방법 폰트의종류변경, 폰트크기 / 속성변경방법 Graphic object 비트맵버튼의생성 버튼이미지를준비 사용할버튼의크기에적합한이미지를준비. 일반적으로.BMP 이미지파일을사용. Ex) Resource

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

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 4 강. 함수와라이브러리함수목차 함수오버로딩 디폴트매개변수 라이브러리함수 clock 함수 난수발생 비버퍼형문자입력 커서이동 프로그래밍문제 1 /21 4 강. 함수와라이브러리함수함수오버로딩 2 /21 함수오버로딩 동일한이름의함수를여러개만들수있음 함수프로파일이달라야함 함수프로파일

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

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

More information

슬라이드 1

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

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가 www.kdnetwork.com 특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가능할 삭제할 건전지 사용자를 위한 개별 비밀번호 및 RF카드

More information

디지털영상처리3

디지털영상처리3 비트맵개요 BMP 파일의이해실제 BMP 파일의분석 BMP 파일을화면에출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic Device

More information

GDI의 개념

GDI의 개념 제 6 장그래픽객체의사용 6.1 GDI와 DC의개념 6.2 GDI 객체실습 6-1 직선과도형및비트맵그리기 6.3 GDI+ 의개념실습 6-2 사각형뷰포트에원그리기 GDI 의개념 Graphic Device Interface 윈도우가하드웨어를제어할수있도록응용프로그램에제공하는모든기능 응용프로그램과디바이스드라이버의중간역할 응용프로그램에대한장치독립적인그래픽동작수행 Device

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

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

Microsoft PowerPoint - C++ 5 .pptx

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

More information

슬라이드 1

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

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

쉽게 풀어쓴 C 프로그래밍

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

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

Microsoft PowerPoint - 09-CE-14-리스트콤보박스

Microsoft PowerPoint - 09-CE-14-리스트콤보박스 순천향대학교컴퓨터학부이상정 1 학습내용 리스트박스컨트롤 다이얼로그와리스트박스 콤보박스컨트롤 순천향대학교컴퓨터학부이상정 2 리스트박스컨트롤 순천향대학교컴퓨터학부이상정 3 리스트박스컨트롤 사용자가선택할수있는항목들을여러개나열해두고선택할수있는컨트롤 윈도우클래스의이름은 "listbox" 생성예 hlist=createwindow(l"listbox",null,ws_child

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

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

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

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

JVM 메모리구조

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

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information