본문 바로가기

프로그래밍/언어_스크립트36

[Study Effective C++] 생성자 와 소멸자에서는 가상 함수를 호출하지 말것! 지금 실행중인 생성자나 소멸자에 해당하는 클래스의 파생 클래스 쪽으로는 내려가지 않는다! [출처] Effective C++ - Scott Meyers / 곽재용 2008. 2. 12.
[Study Effective C++] 다형성을 가진 기본 클래스의 소멸자는 반드시 가상으로 * 다형성을 가진 기본 클래스의 소멸자는 반드시 가상으로 * 가상 함수가 하나라도 존재하는 클래스의 소멸자도 가상으로 * 기본 클래스가 되지 않거나 다형성을 갖지 않는 클래스의 소멸자는 "비" 가상으로 %% string 클래스나 STL의 컨테이너들은 가상 소멸자를 가지고 있지 않다. 고로 이놈들을 파생 시켜서 클래스를 만드는 것은 주의 하자.!!! [출처] Effective C++ - Scott Meyers / 곽재용 2008. 2. 12.
[MFC] UI thread와 Worker thread의 분리.. worker thread - 시스템으로부터 오는 메세지의 처리 기능이 없다 ui thread - 주로 시스템으로부터 오는 메세지의 처리를 담당한다 MFC의 CWinThread로부터 상속받아 구현된다. (CWinApp, CWinApp로부터 상속받은 클래스도 가능) 스래드의 생성은 주로 AfxBeginThread() 함수를 사용하게 되며 Worker Thread의 경우 AFX_THREADPROC 타입의 쓰레드 함수를, UI Thread의 경우 CWinThread에서 상속한 클래스가 가지고 있는 CRuntimeClass의 포인터를 넘겨주어야 한다. AfxBeginThread() 함수로 생성한 쓰레드의 경우 쓰레드가 생성되는 심점에 쓰레드가 일시 정지 상태일 경우가 있ㅎ기 때문에 ResumeThread() 함수.. 2008. 2. 6.
윈도에서 jpeg/png 이미지 다루기 3 - DDB/ DIB 포맷의 사용 윈도에서 화면에 무었인가 뿌린다는 것은 결국은 비트맵을 뿌리는것 일게다. 윈도에서 처리하는 비트맵에는 DDB (Device Dependent Bitmap)와 DIB (Device Independent Bitmap) 두가지가 있는데 두 타입의 차이점은 다른 도큐먼트를 참조하고... 일단 LoadImage(), LoadBitmap() 함수의 리턴 타입인 HANDLE, HBITMAP은 DDB로 이미지를 처리한다. DDB의 경우 CreateCompatibleBItmap(), SelectObject(), BitBlt() or StretchBlt() 등의 함수를 사용하여 출력하고 DIB의 경우 이미지를 파싱하여 이미지의 크기, 비트맵 데이타, 비트맵 헤더 (BITMAPINFO 구조체)등을 가지고 StretchDIB.. 2008. 2. 6.