일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FOR
- API
- Linux
- json
- go
- 책
- write
- GO 언어
- File
- windows
- window
- tcp
- Sync
- JavaScript
- 리뷰
- Python
- c++
- Close
- Callback
- C
- mutex
- bitcoin
- 영화
- channel
- Golang
- install
- go언어
- package
- http
- range
- Today
- Total
목록mfc (4)
Code Habit
보통 윈도우 UI를 구성할 때 자식 컨트롤들을 멤버변수로 갖고 OnCreate( or OnInitDialog )에서 자식 컨트롤들을 생성하는데 이렇게 만들어진 자식 컨트롤들을 혹시라도 소멸자에서 DestroyWindow하는 우를 범해서는 안된다. 실제 소멸자에서 자식 컨트롤들을 DestoryWindow하면 크래쉬가 발생하게 되는데, 이는 부모가 소멸자를 호출하는 시점에 이미 자식 컨트롤(윈도우)들은 파괴되어 있기 때문이다. 이럴 경우 부모 클래스에서 Destroy하는 함수를 만들어 명시적으로 안전하게 자식 컨트롤들을 해제하는 것이 좋다.
MFC에서 문자열을 편하게 사용할 수 있도록 제공해주는 클래스로 문자 비교, 수정 등을 편하게 할 수 있다. MFC뿐만 아니라 c 기반 프로젝트에서도 다음 헤더 파일을 추가하면 사용할 수 있다. 객체를 생성하면서 생성자 혹은 '=' 연산자를 통해 값 입력이 가능하다. 1 2 CString str(_T("test 문자열")); CString str = _T("test 문자열"); +=, == 연산자를 활용하여 문자를 편하게 더하거나 비교가 가능하다. 1 2 3 4 5 6 7 8 9 CString str1 = _T("앞으로"); CString str2 = _T("코딩은"); CString str3 = _T("필요불가결한 요소이다."); CString str4 = str1 + _T("삶에서") + str2 +..
WTL ( Windows Template Library ) ? (마이크로소프트 오픈소스로 제공하는)GUI를 구성하기 위한 library를 template기법을 이용하여 가볍고 쓰기 쉽게 만든 것이다. 달리 얘기하면 WTL은 MFC보다 가벼우면서 쉽게 GUI를 작성하기 위해 ATL을 이용하여 만든 library이다. 쉽게 말해 ATL의 확장이라고 할 수 있다. 장단점 MFC보다 가벼우면서 윈도우 API보다 쉽게 GUI를 작성할 수 있으나 반대로 MFC보다 생산성이 떨어지고 윈도우 API보다는 무겁다. 즉, 윈도우 API와 MFC 사이에서 적당한 크기와 생산성을 내 주는 중간적인 개발 방법이다.무료로 다운받을 수 있으며 오픈 소스로 원하면 수정하며 쓸 수 있으나 사용하는 사람이 적어 관련 자료를 얻기 힘들다..
MFC 특징 MFC 객체는 스레드에 안전한 구조가 아니다. MFC 객체에 접근(Access)하기 위해서는 CWinThread 객체를 사용한 스레드여야 한다. ( User-Interface Thread, Worker Thread) User-Interface Thread와 Worker Thread의 차이 : User-Interface Thread는 스레드 자체의 메시지 큐를 가지며 일반적으로 UI를 포함한다. MFC 객체는 그것을 생성한 스레드에서만 접근할 수 있다. MFC는 윈도우 핸들과 윈도우 객체를 연결하는 맵( Windows Handle Maps)을 가지는데 이것은 스레드의 로컬 영역에 저장되기 때문이다. Worker Thread에서 UI관련 객체 생성 및 접근은 위험하다. Dead lock에 빠질 ..