전체 글 119

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..

Recursion 재귀함수

특징 : 자기 자신을 호출 해서 사용 하는 형태의 알고리즘 장점 : 짧은 코드로 작성을 할 수 있어서 클린 코드로 구현이 가능 하다 단점 : 작성한 본인 이외 다른 사람이 해당 구현한 코드를 알아 보기 힘들다. #pragma once class Recursion { public: void example_1(); void example_2(int val); int example_3(int val); int example_4(int val); int example_5(int val, int size); int example_6(int val); int example_7(int val, int val2); int example_8(int val, int val2); }; Recursion.h #include ..

58_Tessellation

쉐이더 파일 더보기 실행 보충 더보기 TS (CHS, HS, TS, DS) 한 셋트로 사용하며 DX11때 생긴 기술 파이프 라인 IA-> VS -> [CHS, HS] ->TS -> DS ->GS -> SO ->(3D) RS -> PS -> OM (2D) 핵심 1. 정점 3개를 넘겨서 쉐이더 영역에서 많은 도형을 그릴때 사용 하는 기술 2. TS는 RS 처럼 건들수 없는 영역 (CHS, HS ,DS는 직접 작성 해야 한다) 3. 삼각형과 사각형으로 조합해서 여러 도형을 다룸 4. 변(Edge)과 중심점은 최소 갯수는 1개이고 최대 갯수는 64개 이다 5. 변(Edge)갯수가 1 미만이면 아예 그려지지 않는다 6. Edge, 제어점의 수는 동일하게 해야 추후 나중에 관련 계산 할 때 편하다 장점 1. 적은 ..

카테고리 없음 2021.11.02