◆ 무한한 가능성/& Visual C/C++ 41

[C++] WM_PAINT - line, rectangle, ellipse, star, radian, textout

case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // BeginPaint가 아닌 GetDC로 얻어옴(if WM_PAINT 가 아니라면) // // // line & tri-angle // MoveToEx(hdc, 100, 110, NULL); // LineTo(hdc, 195, 195); // LineTo(hdc, 25, 195); // LineTo(hdc, 100, 110); // // // // rectangle // MyBrush1 = CreateSolidBrush(RGB(100, 0, 100)); // OldBrush = (HBRUSH)SelectObject(hdc, MyBrush1); // Rectangle(hdc, 200, 200, 300, 300); // Sel..

[요약] Effective C++ 3장 (항목13~17)

[요약] Effective C++ 3장 (항목13~17) 3장 자원 관리 항목 13: 자원 관리에는 객체가 그만! 투자에 대한 최상위 클래스 라이브러리가 있다고 가정하자. 1: class Investment { ... }; // 여러 형태의 투자를 모델링한 2: // 클래스 계통의 최상위 클래스 이 라이브러리에 Investment에서 파생된 클래스의 객체를 사용자가 얻어내는 용도로 팩토리 함수(항목 7참조)만을 쓰도록 만들어져 있다고 하자. 1: Investment* createInvestment(); // Investment 클래스 계통에 속한 클래스의 객체를 2: // 동적할당하고 그 포인터를 반환한다. 3: // 이 객체의 해제는 호출자 쪽에서 직접 해야한다. createInvestment 함수를 ..

waveOut~()

* waveOut~ 함수들에 관한 정리 : waveOut~ 함수를 전부 정리한 것은 아니고, 사용하는 것만 정리. 1. UINT WINAPI waveOutGetNumDevs(void); This function retrieves the number of waveform output devices present in the system. 시스템 안의 현재 음성 출력 장치의 수를 구하는 함수 R.V.> The number of devices indicates success. Zero indicates that no devices are present or that an error occurred. 2. MMRESULT WINAPI waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID..

waveIn~()

* waveIn~ 함수들에 관한 정리 : waveIn~ 함수를 전부 정리한 것은 아니고, 사용하는 것만 정리. ref.> waveIn은 Queue를 사용함 1. UINT WINAPI waveInGetNumDevs(void); This function retrieves the number of waveform input devices present in the system. 시스템 안의 현재 음성 녹음 장치의 수를 구하는 함수 R.V.> The number of devices indicates success. Zero indicates that no devices are present or that an error occurred. 2. MMRESULT WINAPI waveInOpen(LPHWAVEIN p..

저수준 멀티미디어 API함수의 이해

5. 저수준 멀티미디어 API함수의 이해 저수준 오디오 함수들의 이름은 접두사-동사-명사의 형식으로 함수명이 이루어져 있다. 디지털 웨이브 파일 형식의 데이터를 입출력하는 waveaudio장치와 보조 오디오 관련된 함수들을 중심으로 알아본다. 접두사 의미 waveIn- 사운드 녹음 waveOut- 사운드 출력 midiIn- 미디 신호의 입력 midiOut- 미디 신호의 출력 aux- 보조 오디오 장치 mixer- 믹서 AVI- 동영상 입출력 joy- 조이스틱 입력 mmio- 멀티미디어 파일 처리 time- 멀티미디어 타이머 관련 접미사 의미 -GetNumDevs? 장치 개수를 획득 -GetDevCaps? 장치 정보를 획득 -Open 장치를 연다. -Close 장치를 닫는다. -PrepareHeader? ..

[요약] Effective C++ 2장-2 (항목09~12)

[요약] Effective C++ 2장-2 (항목09~12) 2장 생성자, 소멸자 및 대입 연산자 - 2 항목 09: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말아야 하는- * 두. 가. 지. 이. 유. !!! 1) 우선 호출 결과가 여러분이 원하는 대로 돌아가지 않을 것이고, 2) 원하는 대로 돌아간다고 해도 여러분은 여전히 방귀를 세 시간은 참은 것 같은 얼굴을 하고 있을 것이기 분명하기 때문이다. 주식 거래를 본뜬 클래스 계통 구조가 있다고 가정하자. 여기엔 매도주문, 매수주문 등등이 있다. 주식거래 모델링에서 가장 중요한 포인트라면 감사(audit) 기능이 있어야 한다는 것이다. 그렇기 때문에 감사로그(audit..

[요약] Effective C++ 2장-1 (항목05~08)

[요약] Effective C++ 2장-1 (항목05~08) 2장 생성자, 소멸자 및 대입 연산자 - 1 항목 05: C++이 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 빈 클래스(empty class)를 프로그래머가 선언할때에 자동적으로 컴파일러는 기본생성자(default constructor), 복사생성자(copy constructor), 복사대입연산자(copy assignment operator), 그리고 소멸자(destructor)를 선언한다. 1: class Empty{}; 만약 여러분이 위와 같이 썼다면, 1: class Empty{ 2: public: 3: Empty() { ... } // 기본 생성자 4: Empty(const Empty &rhs) { ... } // 복사 생성자..