본문 바로가기

전체 글

(596)
Windows Class (Section 7) 참고> https://blog.naver.com/tipsware/221004018862 'Window Class'에 대하여~ : Win32 프로그래밍 관련 전체 목차http://blog.naver.com/tipsware/221059977193이 글은 C++ 언어의 cla... blog.naver.com 1. Windows 운영체제는 멀티태스킹을 지원하기 때문에 중복된 데이터를 줄이기 위한 많은 고민을 하였다..!! 2. 코드 영역은 같은 프로그램이 여러 번 실행되었을 경우에도 모두 동일하다. 중복이므로 줄일 수 있다. 반면 전역 변수, 지역 변수, 힙에 저장되는 데이터등 실행 중에 수정 가능한 데이터는 줄일 수 없다. 3. 사용자가 서로 다른 프로그램들을 여러 개 띄우면 코드 영역도 모두 다르기 때문에 ..
Windows Event (Section 6) 참고> https://blog.naver.com/tipsware/221211432527 1. Win32 프로그램에서는 WinMain 함수가 시작 함수 2. 이벤트 객체는 0 또는 1(False 또는 True)의 상태를 기억할 수 있는 '커널 객체(운영체제가 관리하는 객체)'이다. 3. 같은 프로세스 내에 있는 스레드 간에는 변수(메모리)를 같이 사용할 수 있기 때문에 이벤트 이름을 굳이 지정하지 않아도 되지만, 서로 다른 프로세스에 있는 스레드 간에 이벤트 객체를 공유하고 싶다면 이벤트 이름을 만들어 두어야 한다. 4. 이벤트 객체를 생성할 때 이름을 동일하게 사용해서 이벤트 객체가 공유된다면 먼저 만들어진 이벤트 객체의 정보가 우선시 되기 때문에 나중에 사용한 CreateEvent 함수의 bManual..
HInstance (Section 5) 참고> https://blog.naver.com/tipsware/221065845049 HINSTANCE : Win32 프로그래밍 관련 전체 목차 http://blog.naver.com/tipsware/2210599771931. HINSTANCE ... blog.naver.com 1. HINSTANCE: 'H(Handle) + Instance' 로 구성된 이름이고 'Instance Handle'을 저장할 때 사용 2. Process: 메모리에 실행 가능한 상태로 재배열된 실행 코드 3. Process ID: 프로세스를 구별하기 위한 값 ===> 'Instance Handle'은 동일한 프로그램이 여러 번 실행된 경우 해당 프로그램들이 중복해서 가지게 되는 실행 명령 코드나 리소스(아이콘, 커서, 비트맵...
Windows Handle (Section 3) 참고> https://blog.naver.com/tipsware/221065382244 핸들(Handle)에 대하여 : Win32 프로그래밍 관련 전체 목차http://blog.naver.com/tipsware/221059977193​1. 운영체제와 리소스... blog.naver.com 1. 핸들(Handle) : 운영체제 내부에 있는 어떤 리소스의 주소를 정수로 치환한 값 2. 핸들 테이블 : 리소스의 주소와 핸들 값을 한 쌍으로 묶어서 관리하는 테이블 ==> 응용 프로그램(User Part)이 운영체제(Kernel Part)에게 특정 리소스를 요청하면, 운영체제는 리소스의 주소 대신 핸들을 넘겨줌 3. 핸들값은 HANDLE이라는 자료형을 기본적으로 사용한다. 4. Instance Handle: 윈도..
GALLERY #include #include #include #include using namespace std; bool **gAdj; int galleryNum = 0, hallwayNum = 0; vector visited; const int UNWATCHED = 0; const int WATCHED = 1; const int INSTALLED = 2; int installCount = 0; int dfsForInstall(int here); int installCamera(); int main() { int caseNum = 0; cin >> caseNum; cin.ignore(); for (int cIter = 0; cIter < caseNum; cIter++) { #pragma region READ INP..
DICTIONARY #include #include #include #include #include using namespace std; vector adj; vector visited; vector phase; // 위상 vector words; void makeGraph(); vector topologicalSort(); void dfs(int here); int main() { int caseNum = 0; cin >> caseNum; for (int i = 0; i > wordCnt; cin.ignore(); for (int j = 0; j < wordCnt; j++) { string word; std::getline(std::cin, word)..
Clean Code - 로버트 C.마틴 이 글은 로버트 C.마틴의 [Clean Code] 를 읽고 정리한 내용입니다. [ 1장 - 깨끗한 코드 ] #1. 보이 스카우트 규칙 아무리 잘 짠 코드도 시간이 지나면 엉망으로 되기 쉽다. 그래서 우리는 코드를 잘 짜는 것 이외에도 코드의 퇴보를 잘 막는 조치가 필요하다. 미국 보이스카우트의 규칙이 코드 관리에도 유용하다. 캠프장에 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라. 체크아웃할때보다 체크인할때 코드를 더 깔끔하게 해놓자. [ 2장 - 의미 있는 이름] #1. 검색하기 쉬운 이름을 사용하라 #2. 멤버 변수 접두어 (m_ 등) 를 붙일 필요가 없다 클래스와 함수는 접두어가 필요없을 정도로 작아야 마땅하고, 멤버 변수를 다른 색상으로 표시하거나 눈에 띄게 보여주는 IDE를 사용해야 마땅하다. 게..
MSDN WIC 의 Pixel Format 정리 1. Color Channel - 8 bit, 16 bit 등의 bit로 한 색깔을 메모리 상에서 표현함 몇몇 format에서는 꼭 8의 배수를 사용하지는 않는다. 그러나 byte align은 맞추어준다. 예를 들어 5bit로 한 color channel을 표현할 경우 3 channel은 15bit의 공간을 차지하지만, byte align을 위해 8의 배수인 16bit 공간을 사용한다. 마지막 1bit는 패딩인 것이다. +) 참고로, RGB를 예로 들어볼 때 Color Channel 은 R 하나, G 하나, B 하나를 의미한다. 2. 픽셀을 나타내는 format은 여러 가지가 있다. 디지털 이미지의 color channel structure는 다양함 WIC(Windows Imaging Component)..