본문 바로가기

윈도우

멀티부팅(Multi Booting) 이런 생각을 많이 해보셨을 것이다. 하나의 하드에 여러개의 운영체제(OS)를 설치해서 그중에 하나를 골라서 부팅하고 싶다. 가장 간단한 방법은 Vmware를 설치해서 그안에 여러개의 운영체제를 설치하여 실행하는 방법일 것이다. 하지만 그방법말고 하드에 여러개의 운영체제를 설치해서 멀티부팅(Multi booting)해보자. 기본개념은 http://dakuo.tistory.com/entry/파티션Partition의-개념 이다. (최대 4개의 주파티션을 설정할수 있다. 따라서 운영체제도 4개까지 설치가능하다) 기본적으로 MBR에는 하나의 부트레코더만 기록할수 있으므로 여러개의 운영체제를 설치하여 멀티부팅한다는 것은 불가능하다. 하지만 하나의 더미 부트레코더를 MBR에 설치해서 그것을 부팅시킨 후에 거기서 여러.. 더보기
윈도우 관리 메시지 입력 처리의 중심에는 메시지가 있다. 이런 명시적인 입력 외에 윈도우에 관한 기본적인 관리도 메시지로 한다. 윈도우의 상황 변화시에 보내지는 메시지들도 응용 프로그램의 입장에서 보면 일종의 입력이며 프로그램은 이를 적절하게 처리해야 한다. 1. 생성 및 파괴 : 윈도우와 관련된 메시지중 가장 간단한 메시지는 윈도우가 생성될 때 보내지는 WM_CREATE 와 파괴될 때 보내지는 WM_DESTROY 두 가지가 있다. WM_CREATE 는 윈도우가 생성될 때 보내지므로 각종 초기화를 하기에 적합하며 WM_DESTROY 는 종료처리를 하기에 적합하다. 이 메시지들 대신해 사용할 수 있는 방법은 WinMain 에서 직접 초기화와 종료처리를 하는 것이다. WM_CREATE 메시지는 CreateWindow 함수에 의.. 더보기
출력하기 1. DC(Device Context) 윈도우즈는 세 가지 동적 연결 라이브러리(DLL) 로 구성되어 있는데 KERNEL : 메모리를 관리하고 프로그램을 실행시킨다. USER : 유저 인터페이스와 윈도우를 관리한다. GDI : 화면 처리와 그래픽을 담당한다. 윈도우즈 API 함수의 대부분은 이 세 DLL에 의해 제공된다. 특히 화면으로 출력되는 모든 글자와 그림은 GDI 를 통해야 한다. DC(Device Context)란 출력에 필요한 '모든 정보'를 가지는 데이터 구조체이며 GDI 모듈에 의해 관리된다.(ex. 폰트, 선의 색상과 굵기, 허가된 영역에만 출력하게 하기, 출력 방법 등등) 2. 기본 출력 예제 DC를 사용하여 문자열을 출력해보자. 마우스 왼쪽 버튼(WM_LBUTTONDOWN)을 누르면 .. 더보기
윈도우 기초 프로그래밍 #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("Sample"); int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCursor.. 더보기
윈도우즈(Windows) 프로그래밍의 기초 윈도우즈(Windows)의 장점 : 1. 그래픽 기반의 운영체제이다. 2. 멀티 태스킹이 가능하다. 3. 장치에 영향을 받지 않는다. 4. 일관성 개발툴의 선택 : 1. API : API(Application Programming Interface) : 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합 2. SDK : SDK(Software Development Kit) : 윈도우즈를 만든 Microsoft에서 제공하는 윈도우즈용 프로그램 개발 킷이다. API 함수들을 사용하여 프로그램을 작성하며 가장 원론적이고 먼저 발표된 개발방법이다. 섬세하고 막강하며 속도가 빠르고 크기에 유리하나 방대한 API 함수를 알아야 하며 코드가 길어지고 생산성도 낮다. 3. 클래스 라이브러리 API 함수들을 좀 더 쉽.. 더보기
Windows PE 구조 PE 포맷이란 윈도우 OS가 파일을 실행시키기 위해서 Portable Executable 포맷 (확장자 : .exe와 .dll)을 동적 라이브러리를 링킹하기 위한 참조 값과 API export and import tables, 리소스 데이터와 TLS 데이터를 캡슐화한 것이다. 소스 코드를 컴파일하고 링크를 하여 PE 구조의 실행 파일이 생성되는 과정을 순서도로 보면 실행 파일에는 어떤 내용들이 들어있는지 윈도우 Notepad.exe를 메모장으로 열어보겠다. MZ는 PE를 만든 Mark Zbikowski의 이니셜로써, MS-DOS 헤더의 시작을 알리는 문자이다. "This program cannot be run in DOS mod" 문자열은 DOS 에서 윈도우 프로그램이 실행되면 출력하는 문자열이다. PE.. 더보기