목록Win32 API (6)
cyphen156
우선 프로젝트 코드를 정리하자. 다음과 같이 정리하면 깔끔해진다.+++pch.h 관련 설정 추가// dontstarveCopy.cpp : 애플리케이션에 대한 진입점을 정의합니다.//#include "pch.h"#include "framework.h"#include "dontstarveCopy.h"#define MAX_LOADSTRING 100#define WSREGULAR 5000#define WSLARGE 10000// 전역 변수:HINSTANCE hInst; // 현재 인스턴스입니다.HWND hWnd; // 메인 윈도우WCHAR szTitle[MAX_LOADSTRING]; ..
비주얼 스튜디오에서는 미리 컴파일된 헤더라는 옵션을 제공한다. 이 옵션은 프로젝트 속성 - c/c++ - 미리컴파일된 헤더 옵션에서 설정이 가능하다.예전에는 stdafx라는 이름으로 제공하던 사용자 정의 헤더였지만 최근에는 그냥 축약어로 Pre-Compiled-Header(pch)라는 이름으로 사용된다고 한다.미리 컴파일된 헤더에서는 자주 사용되는 iostream, windows.h, ctypes.h와 같은 STL라이브러리 등을 포함시켜 다른 파일들에 일일이 헤더를 추가하지 않을 수 있도록 연결된 헤더를 미리포함시켜 생산성을 높이고, 디버깅시 미리 컴파일된 헤더 파일은 빌드 과정에서 새로 연산하지 않고, 이전 연산결과를 그대로 사용해 디버깅 시간을 줄여준다. pch.h#pragma once#include..
현재 윈도우 기본 메세지 루프를 사용하고 있다. 이 방식의 최대 단점은 사용자 입력이 윈도우에서 발생해야만 프로그램이 동작하고, 그 외에는 무한정 대기하고 있다는 것이다. 잠깐 생각해보면 백그라운드 작업시 돌아가지 않는 게임을 생각할 수 있다. 윈도우가 최상단에서 실행되고 있어 무효화 영역이 발생하지 않을때만 프로그램이 동작하고, 조금이라도 무효화 영역이 발생하거나, 백그라운드로 넘어가면 일시정지되어 프로그램이 멈추는 것들을 생각하면 될 것같다.최종 완성된 결과물은 다음과 같이 동작한다. 이러한 원인이 발생되는 함수가 다음 반복문에 존재하는 조건 GetMessage()함수의 사용때문이다.// 기본 메시지 루프입니다:while (GetMessage(&msg, nullptr, 0, 0)){ if (!..
맨 처음에는 png를 그대로 쓰고싶어서 gdi+를 통해 작업하려고 했는데 왜인지 모르게 이미지가 로드되지 않더라. 그래서 그냥 개별적으로 파이썬 스크립트를 통해 ktech룰 통해.png로 변환된 latex파일을 다시 bmp파일로 변환해주는 스크립트를 통해 자동화해서 리소스를 죄다 추출했더니 용량이 1.5기가쯤 되더라. 아마 애니메이션을 표현하기 위한 scml파일도 포함되어 있어서 그럴거다. 어쨋든 주말동안 했던 내용을 정리하자면 WM_KEYDOWN 케이스문을 작성하여 개별적으로 키입력 동작 메세지 발생시 hBitMap 객체가 좌표이동을 하도록 하고, invalidateRect() 함수를 통해 무효화 영역을 강제로 발생시켜 다시 그리도록 지시했다.우선 화면에 표시될 오브젝트 한개의 좌표를 저장할 정적 변수..
GDI는 화면에 무엇인가를 보여주기 위해 사용되는 하드웨어에 의존하지 않는 가상 그래픽장치 인터페이스로, 2D그래픽을 처리한다.wingui.h함수 안에 존재하는데 windows.h안에 기본적으로 포함되어 있으므로 따로 호출할 필요가 없다.DC(Device Context)윈도우 클라이언트 영역에서 그리기 정보를 의미한다. HDC라는 핸들을 통해 운영체제가 자원을 직접 관리하고 있으므로 호출 했다면 반드시 반납해야 하는 메모리 관리가 필요하다.다음과 같이 WndProc함수 안에 DC함수 사용이 존재한다. case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // TODO: 여기에 hdc를 사용하는 그리..
취업전 코드 활용 재활 겸 다 까먹은 윈도우즈 32API 복습용 글쓰기 윈도우즈 32 API는 마이크로 소프트에서 Windows 운영체제를 위한 타겟플랫폼 개발을 지원하기 위해 만든 API이자 SDK이다.프로젝트의 생성은 다음 스크린샷을 따라 생성하면 된다.맨 처음 프로젝트를 생성하고 나면 확인해 볼 것은 딱 3개다. 1. 프로그램의 메인 시작점인 Win32API.cpp2. 프로젝트 내의 리소스들을 관리하는 Resource.h와 Resoruce.rc3. 프로그램이 빌드되었을 때 표시될 아이콘인 Winc32API.ico와 small.icoWin32API.cpp프로젝트명.cpp파일로 프로그램의 메인 진입점이 된다. React에서의 app.js/index.js에 해당하는 파일이다.처음 메인파일을 열어보면 뭔가..