190701-2 - 핸들, 동기, 신호/비신호 (1일차) 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. #include #include #include void main() { //const char* s = "Hello!"; // 상수 메모리 문자열 ////s[0] = 'a'; // 변경할 수 업 //printf("%s\n", s); char cur[MAX_PATH]; char sys[MAX_PATH]; char win[MAX_PATH]; // 현재 작업 디렉토리 GetCurrentDirectory(MAX_PATH, cur); //● 작업 디렉토리 : 프로세스는 자기만의 작업디렉토리가 있다. //SetCurrentDirectory("C:\\Temp"); //GetCurrentDirec..
윈도우즈 시스템 프로그래밍에 관련된 내용입니다. 190701-1 - 커널오브젝트, 아스키코드와 유니코드 (1일차) 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. C/C++의 DLL등을 .Net에서 갖다가 그대로 쓸 수 있다. (유명한 C++/C 라이브러리는 C#으로 포팅 되어있다.) 다른 언어를 사용할 때 BCL을 사용해야한다. (이론적으로 모든 언어로 프로그래밍이 가능하다. 그러나 거의다 C#으로 개발함) Win32라이브러리에서 os와 밀접한 부분을 공부한다. 그 부분이 시스템 프로그래밍이다. 여기서는 프로세스와 쓰레드, 핸들 종류, 메모리, DLL(동적 링크 라이브러리), 동기화 객체, +a 등을 중요하게 공부할 것이다. 쓰레드와 동기화 부분은 다른 쪽으로 넘어가도 중요한 부분이 될..
190628(5일차) 정처기 시험준비하느라 수업을 잘 듣지 못한 날. 복사생성자 처음 초기화를 복사로 함. 복사 대입 연산자 원래 만들어진 곳에 대입 (참조면 delete 필요) 개체는 독립성을 가져야한다. 복사 생성자의 원형 String(const String& arg) { } DrawText(hdc, msg, -1, &rt, DT_CENTER|DT_VCENTER|DT_SINGLELINE); GetClientRect(hwnd, &rt) 윈도우의 생성정보를 유지하는 메모리 블록이 있다. 메모리 블록을 컨트롤 하는 것이 핸들. 사용자가 메모리 블럭을 만들어 낼 수 있다. (각 윈도우 마다 만들 수 있다.) cbClsExtra 를 사용하면 된다. 또는 cbClsExtra. WndClass.cbWndExtra..
190627(4일차) - 다이얼로그 윈도우, 자식윈도우, 컨트롤 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. 다이얼로그윈도우 자식윈도우 컨트롤 응용 프로그램 메뉴 클릭시 WM_COMMAND 가 발생된다. wParam의 LOWORD에서 어떤 메뉴가 눌렸는지 알 수 있다. 프로시저(핸들러) : 메세지를 처리하는 함수 MVVM : 모델뷰 뷰모델 현윈도우 외 다른 영역에서 마우스가 떼졌을 때 좌표가 필요하다면, 마우스캡쳐가 필요하다. SetCapture(①); //DOWN메세지에서 ①: 어떤 윈도우가 캡쳐받을 건지 (hwnd 등) ReleaseCapture(); //UP메세지에서 이 때 우리가 하는 실습 네모그리기에서 화면 밖 영역에서 마우스를 놓게되면, 마이너스 값을 갖게된다. 8비트 였던..