본문 바로가기

프로그래밍

GoF 의 디자인 패턴 GoF 의 디자인 패턴 정리 : 이영한 ( hotyoung@windowslove.net ) 목 차 1. 생성 패턴 (Creational Patterns) 5 1.1. Abstract Factory 5 1.1.1. 구조 5 1.1.2. 참여 객체 5 1.2. Builder 6 1.2.1. 구조 6 1.2.2. 참여 객체 6 1.3. Factory Method 8 1.3.1. 구조 8 1.3.2. 참여 객체 8 1.4. Prototype 9 1.4.1. 구조 9 1.4.2. 참여 객체 9 1.5. Singleton 10 1.5.1. 구조 10 1.5.2. 참여 객체 10 2. 구조 패턴 (Structural Patterns) 11 2.1. Adapter 11 2.1.1. 구조 11 2.1.2. 참여 객체 1..
디자인 패턴 간략 설명 http://seonho.blogspot.kr/2012/01/blog-post_12.html [개발] 디자인 패턴 간략 설명 Creational patternAbstract Factory pattern구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공하는 패턴.Builder patternComposite 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴Factory Method객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브클래스 쪽에서 내리는 패턴. 클래스의 인스턴스를 만드는 시점을 서브클래스로 미룸.Prototype patt..
Effective C++ [1장] C++ 기본 - explicit 생성자 - 복사생성자 (copy constructor) - 복사 대입 연산자 (copy assignment operator) - 함수 인자로 전달될 때는 복사 생성자가 불림 항목1. C++는 언어들의 연합체 C + 객체지향 + 템플릿 + STL 항목2. define 대신 const, enum, inline 사용 - 매크로 대신 상수 사용 - 문자열일 경우 const를 앞뒤로 (상수포인터) - 클래스 상수 static const 사용 (구현파일에 따로 정의 필요) - 매크로 함수대신 inline template 함수 사용 항목3. 낌새만 보이면 const - const char *p : 상수 데이터 - char *const p : 상수 포인터 - const vect..
AfxDeactivateActCtx 정신없이 코드를 갈겨넣던 중 에러가 발생했다. 어? 본적 없는 에러다. 이상하다 싶어 다른 버튼도 눌러봤는데 이번에는 AfxDeactivateActCtx에서 Unhandled exception이 발생. (이쯤에서 불길한 예감이 들기 시작한다..) 디버거를 걸어서 콜스택을 보니.. 안드로메다... 별수 있나 싶어서 한시간 넘게 콜스택을 추적추적 하다가 뭔가 잘못된 길로 들어선듯한 느낌이 들기 시작한다;; (나는 누구? 여긴 어디?) 정신을 차리고서는한참 동안 구글링을 한 뒤에야 해결 방법을 찾았다 ㅠ.ㅠ 1. Debug | Exception 을 클릭 2. Win32 Exceptions 의 Thrown 컬럼의 체크박스를 체크 클릭하고 체크 한다. 여기까지 하고선 디버거를 다시 걸었더니 놀라운 일이 벌어졌다...
Shelll 레퍼런스 유용해서 퍼왓습니다. SHBrowseForFolder 탐색기 관련 댓글 0|엮인글 0
MFC 메모리 릭 체크시 유용한 방법 2개 MFC를 사용하여 프로그램을 개발하고 있다면, #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif 위의 코드를 .cpp 화일에 넣어 프로그램이 종료 되었을때 아래와 같이 누수된 메모리를 할당하는 부분의 소스 코드와 라인 수를 출력 해준다. Detected memory leaks! Dumping objects -> d:\sample\sample.cpp(35) : {48} client block at 0x003739D0, subtype 0, 4 bytes long. Data: 28 00 00 00 d:\sample\sample.cpp(34) : {47} client block at 0x00..
정적 분석 도구 - Cppcheck 정적 분석 도구 - Cppcheck C/C++을 위한 정적 분석 도구 (A tool for static C/C++ code analysis)로 Cppcheck가 있습니다. 아래 사이트에 다운로드 및 자세한 설명이 나와 있습니다. http://sourceforge.net/apps/mediawiki/cppcheck/index.php?title=Main_Page 정적 분석이 무슨 말인지는 잘 모르겠네요... 여하튼, 정적 분석 방식에는 소스 코드를 분석하는 방식과 바이너리를 분석하는 방식이 있습니다. Cppcheck는 소스 정적 분석 도구이고 무료 입니다. !!! Cppcheck는 소스 코드 구문을 분석하여 오류를 검출하며 마이크로소프트 윈도우와 유닉스 계열의 운영체제에서 모두 사용가능 합니다. Cppchec..
버그트랩 스크랩(http://loveru0.egloos.com/1351931) 이번 2차 클베의 숨어있는 공신.. BugTrap을 소개한다. BugTrap은 프로그램이 크래쉬났을때 크래쉬정보를 분석하고, 분석된 정보를 메일서버 또는 TCP서버로 전송해주는 역할을 한다. 사용법이 매우 간단하며, 오픈소스라 적당히 커스터마이징 하기에도 무리가 없다. 일단 기본적인 BugTrap사용법에 대해 알아보고, 카르카스 온라인에서는 사용한 통계툴에 대해 소개한다. 참고로 카르카스 온라인에서는 메일서버가 아닌 TCP서버를 사용한다. ## 프로그램구동시 lib파일을 적재한다. #pragma comment(lib, "BugTrap.lib") ## 진입점에서 초기화한다. void SetupBugTrap() { BT_InstallSehFilter(); // 애플리케이션의 버전을 남긴다. // TCP서버로..