c, git, 컴퓨터 11

DX_4 Keyborad & stdafx.h 수정

Key에 대한 이벤트 관련 처리 해줄 클래스와 Device.h에 있는 각종 헤더 선언을 미리 헤더 컴파일러로 만들어서 사용 1. stdafx.h 만들기 stdafx.h stdafx.cpp 생성 stdafx.cpp #include "stdafx.h" stdafx.h Device.h에 있는 각종 헤더 파일을 옮기기 더보기 #pragma once //Window #include #include //검사용 //STL #include //추가 #include #include using namespace std; //DX Lib #include #include #include #include #pragma comment(lib, "d3d11.lib") #pragma comment(lib, "d3dx11.lib") ..

Singleton

사용이유 단 하나의 class(객체)를 사용 해야 할 때 사용 ※ 관리 객체, 시스템 등 특징 1. 프로젝트에서 유일한 Only One 객체 (2개이상 존재 할 수 없음) 2. 다른 클래스에서 해당 객체를 접근 할시 특정한 방법으로만 접근 가능 3. 디자인 패턴 중 하나 사용 예제 Singleton.cpp 더보기 #include "stdafx.h" #include "Singleton.h" Singleton* Singleton::instance = nullptr; Singleton::Singleton() { cout

Static Lib

사용 이유 기존에 사용하는 window.h 같은 한번 정의 하면 변하지 않을 헤더, 클래스를 dll로 만들어서 좀더 빠르게 컴파일 할려는 목적 특징 사용하는 솔루션은 .exe 실행 파일로 떨어 지지만 Static Lib 만드는 솔루션은 dll 파일로 떨어진다. 만들기 1. 프로젝트 마우스 우클릭 > 추가 > 새프로젝트 2. c++ > Windows 데스크톱 > 정적라이브러리 선택 3. 만들어진 기존의 솔루션 밑에 정적 라이브러리 솔루션 생겼는지 확인 및 정리 > StaticLib.cpp, framework.h 삭제 4. pch.h, pch.cpp 깔끔하게 정리 사용 예제 StaticLib(솔루션) SMath.cpp #include "pch.h" #include "SMath.h" int SMath::Add..

Template

사용 이유 함수 또는 클래스가 어떤거 들어오는지 모르는 상황에서 Template함수를 통해서 들어오는 해당 타입으로 변경 해서 사용이 가능 특징 1. 함수, 클래스, 매개변수에 들어오는 타입에 따라 변경 2. 다른 타입이지만 작업 방식은 같을때 해당 함수로 선언된 함수를 사용 가능 사용 예제 02_Template.cpp 더보기 #include "Global.h" #include "02_Template.h" void main() { test1(50); string str; str = "my world"; test1(str.c_str()); cout

Function (함수)

정의 main 함수 별개로 독립적으로 설계된 코드의 집합 이며 c++함수는 캡슐화 하는데 유용하게 사용 사용 이유 1. 반복적인 프로그래밍을 회피 ex) 특정 작업을 반복 해야할 때 코드로 작성 하는게 아닌 함수를 만들어서 해당 작업용 함수를 호출 2. 모듈화로 인한 코드의 가독성 3. 문제 발생, 기능 변경시 해당 함수만 변경으로 손쉬운 유지보수 특징 1. 반환값이 있는 형태와 반환값이 없는 형태의 2가지 형태로 선언 2. 반환 타입을 모든 타입을 사용이 가능 사용 예제 01_Function.cpp 더보기 #include "Global.h" #include "01_Function.h" //1. Class 에서 정의 해서 쓰는 함수 void test1(){ cout

4. Resource

버젼이 높은 경우에는 자동 생성 코드가 없기 때문에 아래에 있는 내용처럼 작성 하면 끝 1. 리소스 생성 리소스 필터 -> 마우스 우클릭 -> 추가 -> 리소스 클릭 자기가 만들고 싶은 리소스 클릭 -> 새로 만들기 ※ 다른거 만들고 싶으면 https://commen.tistory.com/331?category=1049388 에 있는 링크 클릭 성공적으로 만들어지면 총 3개의 파일이 생성 되는데 각각 파일 역할은 아래와 같다 icon1.ico : 리소스 파일 resource.h : 리소스 파일을 사용 매크로로 사용 할 수 있도록 해주는 헤더 Win32_API.rc : 리소스 파일을 조작하는 편집기 ※ resource, Win32_API, 리소스 파일들은 모두 한곳에 있어야 한다 2. 리소스 아이콘 편집 ..

3. Device

Device.cpp = Main() 함수가 있는 실행 클래스 (이름 마음에 안들면 알아서 변경) 1. 클래스 헤더 생성 Device.cpp : Main() 함수가 있는 클래스 Device.h : 전방 함수 선언 및 전역 변수용 Global.h : 다른 클래스, 헤더에서 사용할 각종 헤더용 정의 2. Global.h 정의 #pragma once #include // 각종 Window 함수 정의 #include // 검사용 //Global const UINT Width = 800; // 화면의 가로길이 const UINT Height = 600; // 화면의 세로길이 3. Device.h 정의 LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, ..

1. 프로젝트 생성&설정

2D를 다시 공부 할려고 Win32api 기본 적인 구조와 원리를 공부 할 목적인 카테고리 깊게 팔 생각은 없고 추가로 공부 하고 싶은면 아래 링크에 있는 사이트에서 구현 하고 싶은거 생각 날 때 만든 카테고리 http://soen.kr/lecture/win32api/ApiLec.htm 작업 하는 버젼 15.3 이상 버젼에서는 Win32api 자동 생성 코드가 없기 때문에 버젼이 높은 사람은 아래 글 보고 따라해서 생성& 설정 1. 프로젝트 생성 파일 -> 새로만들기 -> 프로젝트 Visual c++ -> window 데스크톱 마법사 클릭 후 생성 애플리케이션 종류 콘솔 -> 빈프로젝트 생성 성공적으로 프로젝트 생성이 되면 아무것도 없는 솔루션 한개가 만들어짐 2. 프로젝트 설정 프로젝트 -> [프로젝트..

SlowSort

Selection Sort 특징 1. 조건에 따라 앞에서든 뒤에서든 천천히 1칸씩 정렬이 된다. 2. 최악, 최대, 평균 구분 없이 실행 시간은 같다 Bubble Sort 특징 1. x와 x+1를 2개씩 비교해서 뒤에서 부터 정렬 2. 최악, 최대, 평균 구분 없이 실행 시간은 같다 3. Swap 과정이 많기 때문에 느리다 Insertion Sort 특징 1. 비교할 x와 한개씩 증가하면서 비교할 y의 통해서 정렬 2. x, y값 비교해서 Swap이 발생하면 교환 하는 자리를 비우고 한칸씩 우측으로 밀어버린다. 3. 반복 돌릴수록 정렬이 자동적으로 되기 때문에 위에 2개 정렬 보단 빠르다 #pragma once #define SIZE 7 class SlowSort { public: void SelectS..