Languages/C++

    외부 기호를 확인할 수 없습니다. 1개의 확인할 수 없는 외부 참조입니다.

    헤더에서 선언한 static 변수를 초기화하지 않아서 제목의 에러가 발생했다. 해결방법은 cpp파일에서 초기화를 해준다. // AAA.h class AAA { public : static int nNumber; } // AAA.cpp int nNumber = 0; //클래스 외부에서 초기화 해준다.

    함수안에서 new연산자로 생성하지 않은 클래스의 delete는 에러

    int _tmain(int argc, _TCHAR* argv[]){ BT bt; BT* pBt = &bt; delete pBt; return -1; } //debug assertion failed!! bt는 함수안에서 생성했기 때문에 스택 메모리에 올라간다. bt의 메모리 주소를 할당받아도 그 주소는 스택메모리의 주소를 가르키게 된다. 그래서 힙 메모리 상에는 존재하지 않기 때문에 delete 연산자로 메모리 해제를 하려고 하면 에러가 발생한다. 스택메모리이기 때문에 함수가 끝나면 자동으로 소멸자가 실행되며 메모리 해제가 된다.

    LOGFONT 구조체

    typedef struct tagLOGFONTW { LONG lfHeight; //글꼴의높이(픽셀단위), 절대값이므로 음수가능 LONG lfWidth; // 장평 LONG lfEscapement; // 문자열의 기울기 LONG lfOrientation; //글자의 각도를 0.1 단위로명시 LONG lfWeight; // 글꼴의 굵기 ( = FW_BOLD) BYTE lfItalic; // 이텔릭(약간 옆으로기울어진문자) 할지 명시(true, false) BYTE lfUnderline; // 밑줄 BYTE lfStrikeOut; // 문자가운데줄 BYTE lfCharSet; //문자집합을 명시.(국가별로설정이조금씩다를수잇따) BYTE lfOutPrecision; //나머지는 출력의정확도나, 출력물의 질적수준..

    int를 CString으로 변환하기

    int n = 10; CString sResult; sResult.Format("%d", n);

    int를 string으로 변환하기

    int nMinutes = 12; char strbuf[3]; itoa(nMinutes, strbuf, 10); itoa(변환할 숫자형 데이터, 변화되어 담겨질 char형 변수, 진수);

    [펌]afx_msg란?

    afx_msg 라는 것이 virtual 대신 붙여 놓았다는 말은 처음 들어보네요. 실제 동작 원리는 virtual 함수와 비슷하긴 하지만 virtual 대신에 afx_msg라는 것을 붙인다는 것은 첨 들어봤습니다. afx_msg라는 것은(a가 기억이 안나지만 아마 application 이겠지요) framework_msg 의 약자인데요 Window Message와 연결된 함수라는 겁니다. Window Message의 동작 원리는 선언 부분이 아닌(헤더) 정의 부분인(cpp)에 보시면 BEGIN_MESSAGE_MAP(현 클래스 , 부모 클래스) END_MESSAGE_MAP 와 같이 정의 되어 있는데 저 디파인 들어가보면 배열이라던가 포인터로 된 멤버들이 디파인 되어 있습니다. 저런식으로 쓰는 이유는 메세지를..

    [펌]#define과 typedef의 차이

    [펌]#define과 typedef의 차이

    http://msbang.co.kr/80163148187

    unique 알고리즘 함수

    bool Pred(int left, int right){ cout