본문 바로가기

분류 전체보기86

(1) MFC 시작하기 MFC 가 뭔지는 모르겠지만 윈도우에서 UI가 있는 프로그램을 만들기 위해 이 글을 읽고 계실거라 생각합니다. MFC 란 무엇인지? 에 대해서는 구글링하면 정의가 아주 많이 나와있어요. 이 글을 보고 있는 분들은 MFC가 무엇인지 보다는, MFC 라이브러리를 이용해서 프로그램을 어떻게 만드는지, Visual Studio로 MFC 프로젝트 생성은 했는데 도대체 여기 있는 소스들이 뭘 의미하는지, 어디서부터 뭘 해야할지 모르겠어서 찾아보는 분들일 거라 추측합니다. (제가 그랬거든요) 각설하고, 짧고 굵게 본론만 설명합니다. 더보기 참고로 Visual Studio 안깔려 있으시면 이 글을 참조하시면 됩니다. C++ 개발자를 위한 Visual Studio 설치하는 방법 2020/08/08 - [Dev Notes.. 2020. 8. 8.
[리스트 컨트롤] CListCtrl 예제 Dialog 기반의 Window 프로그램을 만들 때, 리스트 컨트롤을 자주 사용하게 됩니다. 이때 이 리스트에 새로운 item을 추가하는 예제입니다. 현재 리스트의 갯수를 받아와서 nCnt 에 넣고, 새로운 item은 nCnt+1번째에 추가 (nCnt 에 추가하는 것 같지만, 이 인덱스는 0부터 시작하는 배열이기 때문에 item.iItem = nCnt로 지정) 하는 예제입니다. int nCnt = m_ListProcessPolicy.GetItemCount(); _stprintf_s( szCnt, _T("%d"), nCnt ); LVITEM item = {0,}; item.iItem = nCnt; item.iSubItem = 0; item.pszText = szCnt; item.mask = LVIF_TEX.. 2020. 8. 8.
[파일 열기] CFileDialog 예제 웹 브라우저에서 파일 첨부를 할 때 열리는 explorer 와 동일하게 보이는 창을 여는 예제입니다. MFC 로 Window 가 있는 프로그램에서 pc의 파일을 첨부 (혹은 file path를 받아오기 위함) 하는 예제로 사용될 수 있습니다. CString dirdir; CString fileName; CString fileDir; CFileDialog fileDlg( TRUE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY, L"모든파일(*.*)|*.*||" ); if( IDOK == fileDlg.DoModal() ) { fileName = fileDlg.GetFileName(); // 파일명 받기 fileDir = fileDlg.GetPathName(); // 경로 .. 2020. 8. 8.
C++ 11 : default, delete 키워드 default 컴파일러가 함수를 자동으로 생성하도록 명시적으로 지정 delete 컴파일러가 함수를 자동으로 생성하지 않도록 명시적으로 지정 class TEST { public: TEST() = default; TEST(const TEST&) = default; ~TEST() = default; TEST & operator=(const TEST) = delete; void* operator new(size_t) = delete; // new로 할당하지 못하게 방지 }; Q. 멤버 변수를 기본 타입이 아닌 사용자가 정의한 클래스 타입으로 멤버변수를 갖고있는 클래스이면 위에 처럼 TEST( const TEST& ) = default; 로 선언해도 깊은 복사가 이루어질까? 안될거같은데? 2020. 8. 8.
C++ 11 : 지연 평가 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과값이 필요할 때까지 계산을 늦추는 기법이다. (개념적인 부분) 느긋하게 계산하면 필요없는 계산을 하지 않으므로 실행을 더 빠르게 할 수 있고, 복합 수식을 계산할 때 오류 상태를 피할 수 있고, 무한 자료 구조를 쓸 수 있고, 미리 정의된 것을 이용하지 않고 보통 함수로 제어 구조를 정의할 수 있다. 이렇게 얘기하면 무슨말인지 와닿지 않을 것이다. 앞에 얘기는 다 까먹고 그냥 새롭게 얘기를 해보자. Effective C++ 에서는 '변수 정의는 최대한 늦출 수 있을때까지 늦춰라' 라는 말이 있는데, 보통 우리는 변수 선언은 함수의 최상단에 몰아놓는 경향이 있다. 코드의 가독성 때문이기도 하는데, ( 내 생각엔 학교에서 프로그래.. 2020. 8. 8.
C++ 11 : 일급 함수 (1)다른 함수의 매개변수로 함수 전달 std::function 은 호출 가능한 함수, 람다 표현식, 또는 다른 함수 객체, 멤버 함수에 대한 포인터, 멤버 변수에 대한 포인터 등을 저장, 복사, 호출할 때 사용한다. typedef 키워드는 다른 타입이나 함수에 대한 별칭을 정의할 때 사용한다. // ConsoleApplication1.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다. // #include "pch.h" #include #include #include #include // 0) return x / y; else return -1; } /* 함수 포인터를 매개변수로 받는 함수 정의 */ void PassingFunc(FuncType fn, int x, int y) { cout 2020. 8. 8.