C++프로그래밍/MFC 15

CString 과 CFile (문자열 편하게 처리하기)

# CString •MFC 기반 응용프로그램에서 문자열 처리를 지원하는 클래스로 MBCS, Unicode에 대한 지원과 추상성 제공 •MFC 응용프로그램에서는 std::string보다는 CString 사용을 권장 •문자열 사용에 대한 매우 높은 호환성 제공 •내부적으로 효율을 높이기 위한메모리 운영기능을 제공 하지만 간혹 메모리 사용량 증가의 원인으로 작용 •함수 매개변수로 사용 시 주의(빌드모드이슈) ※ MFC에서 new연산자는 Debug, Release모드에 각각 다르게 작동한다 ㆍ 또한 CString은 문자열을 이런식으로 작성하면 (길이가 늘엇다 줄어든 경우) 이러면 빈공간이 줄어들지 않아 메모리가 낭비된다  CString ㆍ 연산자를 지원한다.ㆍ CompateNoCase는 대소문자를 구분할것인가?..

MBCS와 유니코드 (dll,lib 주의)

MBCS (멀티바이트 Character Set)ㆍ char형ㆍ 영문 한 글자는 1바이트, 한글 한 글자는 2바이트ㆍ 버전이 낮은 VS환경의 기본 설정엄청 구형이다.  2000년도 이후부던 다 Unicode를 사용했다;;; Unicode ㆍ wchar_t형ㆍ 영문, 한글 모두 한글자에 2바이트 사용ㆍ 문자열 앞에 'L'을 붙여서 구분ㆍ TEXT(), _T()매크로 사용 https://season97.tistory.com/65 문자와 문자열 (유니코드)※ C / C++을 이미 알고 있으나 개인적인 공부 및 복습을 위해 포스팅 하는 글이므로C++에 대한 구체적인 정보를 담고 있지 않습니다.  ▶ 문자ㆍ  char : 알파벳 / 숫자 문자를 나타낸다 ㆍ  wchar_tseason97.tistory.com옛날에 ..

CPtrList와 CMapStringToPtr

▶ CPtrListㆍ void*를 매개변수로 요구한다. 맞춰서 넣어주자ㆍ POSITION pos = list.GetHeadPosition(); 를 통해 가장 첫번째 노드를 가져오게 됨.ㆍ 그 주소값을 이용해 화면에 출력을 하게 해주는 코드ㆍ GetNext함수를 통해 다음 노드로 갈수있게 해준다.  ▶ CMapStringToPtrㆍ 사용법은 직관적이다. Lookup을 통해 값의 포인터를 찾는다. 그 위치로 가져가서 원본값을 컨트롤하자ㆍ 꼭 스트링을 통해 맵핑할 필요는 없고, 구조체라던지 편의가 좋은 것으로 매핑하도록 하자.ㆍ 동작 구조는 해시다. -> 많은 양의 데이터를 다룰땐 Array와List보단 Map을쓰자..... 많다는건 2000개 이상정도? 로 기준을 잡아보자  간단한건 List나Array쓰고 ..

MFC 및 콜렉션 클래스

▶ MFC란?( Microsoft Foundation Class ) ㆍ Win32 API를 쉽게 활용 할 수 있는 지원체계 (OOP) ㆍ Win32 API 직접 호출 가능 , 혼용해 개발 가능 ※ c/c++기반 GUI 응용 프로그램 프레임워크 (WindowsXP수준 (펜티엄3cpu+256MB Ram)환경에서도 구동 가능) ㆍ AFX (Windows Application FrameworKS) ㆍ WindowsAPI를 충분히 다뤄봤다면 매칭시켜가며 쉽게 공부할 수 있을듯?? ※MFC를 공부하기에 앞서...main 함수가 없기 때문에 흐름이 보이지 않을 수도 있다... 또한 처음보는 매크로 및 자료형이 등장할거다,,   ▶ 콜렉션 클래스란? ㆍ 자료구조와 문자열 클래스를 MFC에서 사용하기 편하게 제공하는 기..

Message driven 구조 (WinAPI)

▶ 윈도우 메세지 ㆍ 윈도우 메세지는 WM_xxx의 매크로 형태로 정의된 unsigned 정수이다.ㆍ WPARAM 은 보통 키보드 LPARAM은 보통 마우스에 대한 이벤트를 처리한다. ▶ 메시지 큐ㆍ 사용자가 입력을 하면 그 이벤트를 OS가 감지한 후 이를 메시지로 변환해 해당 응용 프로그램의 메시지큐에 전달을 한다) ㆍ 메시지를 수신한 응용프로그램(Process)은 메시지 큐에서 메시지를 하나씩 꺼낸 후 처리(함수호출)를 하는 이벤트 루프 구조로 프로그램이 작동한다 ㆍ Process는 최소 1개 이상의 스레드로 구성되며 GUI를 갖는 프로세스의 메인 스레드는 메시지 큐를 가진다. 위 사진이 메시지큐 예시  메시지 핸들러 (HWND)ㆍ 윈도우 프로시저 함수는 메시지 큐에서 메시지를 꺼내 1차 처리하는 함..