본문 바로가기

분류 전체보기96

[WinAPI] sound PlaySound() 가장 기본적인 sound 함수 #include #pragma comment(lib,"winmm.lib")를 필요로 한다. #include #pragma comment(lib,"winmm.lib") BOOL PlaySound( LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound ); PlaySound(L"filepath.wav", 0, SND_FILENAME | SND_ASYNC); SND_ASYNC 사운드는 비동기적으로 재생되며 PlaySound 는 사운드가 시작된 직후에 반환됩니다. 비동기적으로 재생되는 파형 사운드를 종료하려면 pszSound 를 NULL 로 설정하여 PlaySound 를 호출합니다 . SND_FILENAME pszSound 매개 .. 2022. 12. 17.
[CS] 리틀 엔디안, 빅 엔디안 엔디안 엔디안은 컴퓨터 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다. 큰 단위가 앞에 나오는 빅 엔디안 작은 단위가 앞에 나오는 리틀 엔디안 두 경우에 속하지 않거나 둘 모두 지원하는 미들 엔디안이라 부른다. 빅엔디안 빅엔디안은 최상위 바이트(MSB - bit 영역의 제일 왼쪽) 부터 차례로 저장하는 방식이다. 빅엔디안은 사람이 숫자를 쓰는 방법과 같이 큰 단위의 바이트가 앞에 오는 방식이다. 0x1234를 표현하면 (12 34)로 표현된다. 오늘날 사용하는 대부분의 pc에서의 사용 방식 리틀엔디안 리틀엔디안은 최하위 바이트(LSB - bit 영역의 제일 오른쪽) 부터 차례로 저장하는 방식이다. 리틀엔디안은 작은 단위의 바이트가 앞에 온다. 0x1234를 표현하면 (34 .. 2022. 12. 16.
[C++] find, find_if 차이점 find와 find_if는 둘 다 헤더에 정의되어 있고 특정값이 있는지 찾아주는 역할을 한다. find는 찾고자하는 값의 타입에 operator ==가 정의되어 있어야 찾을 수 있다. if(a == b)처럼 비교를 통해서 비교해 찾기 때문인 것 같다. 반면에 find_id는 맨 마지막 인자로 조건식을 주면 조건식이 true가 나오는 값을 찾을 수 있다. 특히 vector와 같은 식을 사용할 때 ==가 정의되어 있지 않아 find는 사용할 수 없고 find_if를 사용해 찾아야 한다. vector 2022. 12. 7.
[C++] 멤버함수포인터 소멸자 런타임 에러 1. 클래스의 멤버변수로 멤버함수포인터를 가지고 있었음 2. 멤버함수포인터를 초기화 해라는 경고메시지 떠서 선언 후 바로 초기화를 함 3. 클래스의 소멸자가 호출될 때 런타임 오류가 발생함 4. 멤버함수포인터 초기화 코드를 지우고 실행하니 런타임 오류가 발생하지 않음 null로 초기화 해보고, 사용할 함수의 주소값 넣어서 초기화 해보고 변수 선언 후 바로 초기화도 해봤으나 시작할 때 초기화가 되었다면 여전히 런타임 오류 발생함 결론 : 멤버함수포인터는 선언 후 초기값을 주면 소멸자 호출 시 런타임 오류 호출됨 따라서 런타임 중에 초기화하여 사용해야 한다. 2022. 12. 1.
[C++] 함수포인터, 멤버 함수 포인터 함수포인터 함수도 변수처럼 주소를 포인터 변수에 저장하여 접근이 가능하다. 포인터 변수에 함수의 주소를 저장하여 참조하기 위해 사용한다. int (*varName) (int, int); typedef int (*funcVarName) (int, int); funcVarName a; int - 함수의 리턴타입 (*varName) - 함수의 주소를 저장할 포인터 변수의 이름 / (int* a)에서 a와 같은 역할 (int, int) - 함수의 매개변수 int func(int, int) 형식의 함수의 주소를 저장할 수 있는 varName 포인터변수 생성 typedef로 해당 형식을 미리 지정해 놓고 (int a) 하는 것 처럼 (funcName a)로 바로 접근도 가능하다. int add(int a, int .. 2022. 11. 27.
[Visual studio] 빌드 속도 개선, Unity build unity build는 컴파일 최적화 방법 중 하나임 전처리를 진행할 파일의 개수가 줄어들면 그만큼 빌드 속도가 빨라진다. 이러한 내용을 바탕으로 visual studio에서 지원하는 기능이 Unity Build이다. 쉽게 말하자면 특정한 cpp 파일을 생성하고 거기다가 우리가 실제로 생성하여 사용하는 cpp 파일들을 #include 하여 파일의 개수를 줄인다. A.cpp를 생성하고 실제 사용하는 B.cpp, C.cpp, D.cpp라 했을 때 아래와 같이 만들어 속도를 향상시킨다. A.cpp 파일입니다. #include "B.cpp" #include "C.cpp" #include "D.cpp" 2019 버전 이전의 버전에서는 해당 기능을 숨겨놨기 때문에 따로 추가 처리를 통해 설정 활성화를 해야한다. 2.. 2022. 11. 25.