MFC에서 보면 아래와 같은 소스 코드가 있다. #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // _DEBUG 이것에 대해 엄청난 궁금증이 있었지만 그려러니 하고 넘어갔었다. 그러던 중 우연치않게 이 용도를 알았다. 프로그래밍하던중 종료시에 "Detected memory leaks!" 이란 메시지를 우연찮게 발견했다. 아무래도 어디선가 new를 했다 delete 를 하지 못해 구천에서 떠도는 원혼의 소리 같은 필이팍! -_-; 하지만 어디서 나오는지 도저히 알 방법이 없었다. 힌트라도 주면 디버깅을 하겠지만 이건 뭐... 완존히... -_-;; 그래서 나름대로 사이트를 뒤적거리던..
MFC에서는 메세지와 함수를 연결시켜주는 메세지맵이라고 있다. BEGIN_MESSAGE_MAP(자기클래스, 부모클래스) ... ... END_MESSAGE_MAP() 으로 된다. 들어가는건 이것 저것 많다. ON_NOTIFY ex) ON_NOTIFY(NM_RCLICK, IDC_DB_TREE, OnNMRclickDbTree) ON_MESSAGE ex) ON_MESSAGE(WM_USER_COMMAND_COPY, OnUserMapCopy) ON_COMMAND ex) ON_COMMAND(ID_OK,OnOK) 등등... 그 외에 일정 범위 안에 있는 메세지를 처리하는 RANGE용도 메세지맵도 있는데 얘네들은 펑션들이 UINT nID를 인자로 가져야 한다. ON_COMMAND_RANGE ex) ON_COMMAND_..
Visual Studio 2005를 쓰는데, Add Variable을 하는 과정에 다음과 같은 오류가 났다. Error: The Extender Provider failed to return an Extender for this object 이 경우 프로젝트 폴더에 있는 *.ncb 파일을 지워 주면 된다. 아 vs2005의 인텔리젼스여어어어어어 ㅠㅠ
보통 MFC에서 이제 view에 사용할 소스 파일의 h와 cpp가 있을 때 이제 해당 뷰에서 사용할 컨트롤 및 클래스들을 사용할 때에 include를 cpp 파일에다가 한다. 헤더 파일에 인클루드 했다가는 무진장 꼬여서 애먹는다 -.-;; 차라리 사용할 클래스들을 그때 그때 cpp에 include하는게 편하다. 그렇다면 멤버 변수로 외부 클래스를 선언 할려면 어떻게 해야하는가 class의 헤더에 외부 클래스의 h가 include 되어 있지 않기 때문에 그냥 선언해선 되지 않을 것이다 예를 들어 내가 class CMain에서 사용하고 싶은 클래스가 CExample 이라고 해보자. //Main.h class CMain{ public: CExample m_example; }; //Main.cpp #includ..
MFC 클래스간 통신 SDI 형태 1. MainFrame 얻기 - CMainFrame *pFrame = (CmainFrame *) AfxGetMainWnd(); 2. App 포인터 얻기 - CTestApp *pApp = (CtestApp *) AfxGetApp(); 3. Document 포인터 얻기 - CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd(); CTestDoc *pDoc = (CTestDoc *)pFrame->GetActiveDocument(); - CTestDoc *pDoc = ((CMainFrame *)AfxGetMainWnd())->GetActiveDocument(); 4. View 포인터 얻기 - CMainFrame *pFrame = (CMainF..
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=829244&ref=829244 나는 분기문을 좀 싫어한다 -.-;; 뭔가 소스가 길어지는 느낌이라서.. 예를 들어 단순히 form열기 같은 것을 하는데 switch문으로 길게 늘리는게 뭔가 안깔끔해 보인다. switch(nIndex) case: 0 Form1열기 case: 1 Form2열기 case: 2 form3열기 이걸 간결히 해주기 위해 아래처럼 쓸 수 있다. Form arFrom[3]; arForm[0] = Form1; arForm[1] = Form2; arForm[2] = Form3; arForm[nIndex].폼열기 이걸 다른 곳에도 응용해 보면, 입력한 숫자에..
- Total
- Today
- Yesterday
- jni
- 드라이버
- API
- jni강좌
- driver
- C
- linux
- db
- 프로그래밍
- Cloud
- Troubleshooting
- C++
- Visual C++
- AWS
- Python
- gcc
- android
- MFC
- source
- java
- winapi
- 안드로이드
- database
- algorithm
- kering
- NDK
- 리눅스
- Quiz
- 음악
- it
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |