[4월 30일 1교시] 프로그램 개발 환경1 프로그래밍 단계 소스코드 -> 컴파일러 -> 오브젝트 코드 -> 링커(startup code, library code 포함)-> 실행가능한 코드 startup code : main code를 수행할 수 있도록 하는 code 컴파일러 세부기능: 전처리기 -> 컴파일 -> 어셈블 GCC C 컴파일러 옵션 -c : 소스파일을 컴파일하고 어셈블한다. -S : 컴파일하고 어셈블 .. 컴퓨터 공부/Advanced UNIX System Programming 2009.04.30
[4월 29일 3교시] 리소스2 + 그래픽1 아이콘 및 커서 추가 리소스에 추가해 준 뒤 윈도우 클래스에 다음 소스를 추가하면 된다. WndClass.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(커서리소스아이디)); WndClass.Icon = LoadIcon(hInstance, MAKEINTRESOURCE(아이콘리소스아이디)); Accelerator 독립된 형태의 리소스. Alt와 Ctrl키와 동시에 함께 눌러 사용하는 단축키.. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.29
[4월 29일 2교시] 입력2 + 리소스1 타이머 일정 시간 간격으로 연속적으로 발생하는 메세지(주기적 갱신) WM_TIMER보다 콜백함수가 더 정확한 시간에 호출됨. - wParam : 타이머의 ID - lParam : 콜백 함수가 있을 경우 콜백 함수의 번지 HANDLE SetTimer(HWND, UINT_PTR, UINT, TIMERPROC); 일정 시간 간격으로 발생하는 타이머 생성. HWND(1): 윈도우 핸들 UI.. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.29
[4월 29일 1교시] 입력1 WM_PAINT 작업 영역중 일부가 무효화 되었을 때(처음 생성, 위치 이동, 크기 변경, 가려졌다 드러날 때, 스크롤 때) WM_CHAR 키보드로부터 문자키가 입력되었을 때(TranslateMessage 함수에 의해 생성) - wParam : (TCHAR)입력된 문자코드 - lParam B31 : keydown-0, keyup-1 B30 : 메세지가 보내지기 전 keyd.. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.29
[4월 29일 3교시] 라이브러리 파일 관련 함수 3 줄단위 입력 #include<stdio.h> char* fgets(char *buf, int n, FILE *fp); 기능 fp로 부터 입력, buf는 '\0'으로 끝난다. \n이 나올때까지 입력받아 \n까지 포함하여 buf에 저장. 입력한 문자열이 n-1을 초과하면 n-1개의 문자만 돌려준다. char *gets(char* buf); 기능 표준 입력으로부터 문자열을 읽음. 버퍼의 영역을 넘어 데.. 컴퓨터 공부/Advanced UNIX System Programming 2009.04.29
[4월 29일 2교시] 라이브러리 파일 관련 함수 2 freopen #include<stdio.h> FILE *freopen(const char *pathname, const char *type, FILE *fp); 기능 : fp가 가리키는 스트림(주로 stdin, stdout, stderr)으로 파일을 개방. 리턴 : 성공시 FILE포인터, 실패시 NULL (printf를 파일 스트림과 연결하여 txt파일에 출력가능하게 할 수 있다.) fdopen #include<stdio.h> FILE *fdopen(int filedes, const char *typ.. 컴퓨터 공부/Advanced UNIX System Programming 2009.04.29
[4월 29일 1교시] 라이브러리 파일 관련 함수 1 sync(), fsync() 기능 : 버퍼 캐시의 내용을 디스크에 쓰도록 한다. (실제 메모리와 캐시 사이에 inconsistency가 있을 때 synchronization을 위해 사용) #include<unistd.h> void sync(void); 데몬 프로세스에 의해 30초마다 호출. int fsync(int filedes); 지정된 파일에 대해서만 버퍼 캐시 내용에 대해 I/O작업을 수행. Blocking함수. .. 컴퓨터 공부/Advanced UNIX System Programming 2009.04.29
[4월 28일 3교시] 출력(DC) 윈도우의 3가지 핵심 모듈 커널 : 메모리 관리, 프로그램 실행. User : 사용자 인터페이스, 윈도우 관리 GDI : 화면처리 및 그래픽 DC GDI 모듈(운영체제에서 화면 처리와 그래픽을 관리)에 의해 관리. 해당하는 윈도우의 표시영역, 그리기 위한 객체들 관리. 멀티tasking 환경에 의해 탄생. DC를 얻는방법 HDC GetD.. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.28
[4월 28일 2교시] WinMain 기본 프로그램 분석2 1. 윈도우 설계도 작성 WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 윈도우의 배경색으로 쓸 색깔을 정함. 브러쉬 핸들을 리턴받기 위해 (HBRUSH)로 casting한다. GetStockObject : 이미 생성(윈도우 부팅시)된 GDI객체를 가져온다. WndClass.hCursor = LoadCursor(NULL,IDC_AR.. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.28
[4월 28일 1교시] WinMain 기본 프로그램 분석1 CALLBACK 시스템이 사용자 함수를 호출함. <=> call : 사용자가 system call을 통해 함수를 수행. #define CALLBACK stdcall 함수호출방식 참고주소 : http://www.winapi.co.kr/clec/cpp2/16-1-2.png 스택 포인터 값은 아래로(-방향으로) 증가한다. 함수에 진입할 때 bp = sp함으로써 함수들은 bp레지스터를 관리하여 내부 .. 컴퓨터 공부/Win32 API 프로그래밍 2009.04.28