Cfile22.uf .15650C4A4D36859D286607

프로젝트 설정 파일 적용하기

이전 시간까지는 처음에 만들었던 “MFC_OpenCV”라는 프로젝트를 기준으로 진행하였습니다. 하지만, 이제부터는 새 프로젝트를 만들어서 진행하는 경우가 많이 생길텐데요… 이 때마다 프로젝트 설정을 바꿔줘야 하는게 여간 귀찮은게 아닙니다…

그. 래. 서. 이번 시간에는 이러한 설정을 파일로 저장하고, 가져오는 방법에 대해서 알아보겠습니다. 일단 첨부한 OpenCV210.props 파일을 적당한 디렉토리에 다운로드 하시구요… 먼저 이 파일을 어떻게 불러오는지부터 알아보겠습니다.

먼저 VS2010실행하셔서 프로젝트 하나를 새로 만들어 주세요~ 귀찮으니 Console기반으로 만들어도 상관 없습니다.

다 만드셨으면 “속성 관리자”라는 놈을 열어보겠습니다.  [보기] → [다른 창] → [속성 관리자]를 눌러 주세요~

Cfile22.uf .15650C4A4D36859D286607

 

그림처럼 확장해서 Debug와 Release를 모두 눌러 줍니다.

Cfile5.uf .1506094F4D36859D1CA33E

여기에서 Microsoft.Cpp.Win32.user는 Visual C++의 전역 설정파일입니다. 자신만의 C++ 설정 스타일이 있다면 여기서 적용해 주시면 매 프로젝트를 만들 때 마다 따로 설정하지 않고 사용할 수 있습니다.

자~ 그럼 여기에 OpenCV210.props파일을 추가해 봅시다~ [기존 속성 시트 추가]를 이용하여 추가해 주시면 됩니다.

Cfile23.uf .1547095A4D36859E1AB764

잘~ 추가가 된 모습입니다.

Cfile25.uf .195CEE4B4D36859E241DCF

 

이제부터는 아주 간단합니다. 저거 더블클릭 해서 설정을 마구마구 바꿔주시면 됩니다~

그러면 이번엔 저 props 파일을 열어서 구조를 잠깐 보도록 할께요~ 그래야 나중에라도 더 추가할게 생기면 수정할 수 있으니까요~

Cfile10.uf .1508794F4D36859E19132E

 

내용을 보니 XML형식으로 작성되어 있네요~

공통 설정은 아무 속성을 주지 않고, Debug나 Release에 따라 달라지는 설정은 Condition 속성을 주어서 처리한다라는 것을 알 수 있네요~

디렉토리 설정은 Debug나 Release나 동일하기 때문에 공통 속성으로 처리하였고, 추가 종속성 설정은 Condition 속성을 주어서 Debug와 Release… 즉 Configuration에 따라 다르게 설정했다는 것을 알 수 있습니다.

더 필요한 설정이 있다면 추가하고… 반드시 props 파일을 열어서 어느 범위까지 영향을 미치는지 확인해야 겠죠? 그리고 저장하면 끝~! 그럼 테스트 코드 하나 넣어서 의도대로 동작하는지 확인해 볼께요~ Cam을 받아오는 코드로 테스트 해 보겠습니다.

Cfile3.uf .16406E514D36859F21DDC7

성공~

cfile1.uf.150D1E434D3686521F4B8F.pdfcfile6.uf.120BA4434D3686533C4736.props

Similar Posts

  • Drag and Drop 지원하기

    이번 시간에는 드래그 앤 드롭(Drag & Drop) 기능을 구현해 보도록 하겠습니다. App Class의 InitInstance함수에 다음과 같은 코드를 추가하면 끝~! pMainFrame->DragAcceptFiles();   cfile8.uf.163148404D261B97190741.pdfcfile10.uf.133139404D261B9716AF4E.zip 관련된 글: Visual Studio 2010에서 OpenCV 이용하기 OpenCV 파일 저장기능 구현2 모든 창 닫기 구현 클립보드 기능 구현

  • AcroEdit에서 C/C++ Compile 하기…

    이제 슬슬 공부나 해볼까하고 마음먹던중;;; 그냥 갑자기 C를 하고 싶어졌습니다… 이제까지 하려고 하려고 해도… 귀찮아서 접어두었던 C 책 한권을 꺼내서;;; 첫장을 펼처보니 “Turbo C++”를 설치하라는 겁니다… 전 착한 학생이기 때문에(~ㅋ) 하라는데로 설치했죠;;; 설치하고 보니 이게 왼걸;;; 구석기시대에서나 볼수있는 인터페이스;;; ㄷㄷ;;; 그래서 부대안에 있을때 사용했던 AcroEdit과 연결하기로 마음먹었습니다… 열심히 컴파일러를 찾아 해매였는데…;;; 이게 왠걸;;; 도처히 못찾겠습니다.;;;…

  • 모든 창 닫기 구현

    이번 시간에는 열려있는 모든 창을 닫는 기능을 구현해 보도록 하겠습니다. 먼저 리소스 뷰를 보기 좋게 꺼내어 두는게 좋겠죠? [보기] → [다른 창] → [리소스 뷰]를 클릭합니다.   이번엔 메뉴 바에 해당 기능을 추가할 예정입니다. 리소스 뷰에서 [Menu] → [IDR_*TYPE]을 선택한 후 그림과 같이 지정합니다. Caption : 모든 창 닫기 ID : ID_FILE_CLOSE_ALL Prompt : 열려진…

  • 모덜리스(Modeless) Dialog로 변환하기

    이전 시간에 만들었던 모달(Modal) Dialog를 모덜리스(Modeless) Dialog로 변환해 보겠습니다. Modal Dialog는 Dialog가 실행되는 동안 다른 작업을 하지 못하고, Modeless Dialog는 프로그램 실행 흐름을 방해하지 않는다는 것 정도는 알고 계시죠? 자 그럼 이전 시간 “MFC – Cam 영상 출력해보기(http://deios.kr/420)”에 만들었던 View Dialog를 멋지게 바꿔 보겠습니다.   OnCamView함수를 다음과 같이 수정합니다. void CMFC_OpenCVApp::OnCamView() {       // TODO: 여기에 명령…

  • RGB 컬러 공간 분리 – 메뉴 기반 구현2

    이번에는 지난 시간에 해 봤던 “RGB 컬러 공간 분리 – 메뉴 기반 구현(http://deios.kr/407)”의 새 창으로 여는 부분을 조금 더 일반화 하고, MFC에 적합하게 만들어 보겠습니다.   먼저 새 창으로 이미지를 여는 전역 함수를 작성해 보겠습니다. App Class의 헤더 파일을 열어 가장 마지막에 다음과 같이 추가해 줍니다. void OpenByNewDocument(LPTSTR szTitle, IplImage * image);  이 전역 함수는…

  • 클립보드 기능 구현

    이번에는 자주 사용하는 기능인 C&P(Copy & Paste)를 구현해 보도록 하겠습니다. C&P를 구현하기 위해서는 이미지를 DIB(장치 독립 비트맵;Device Independent Bitmap)으로 변환하여 클립보드 영역에 넘겨주거나, 클립보드 영역에서 데이터를 받아오면 됩니다. 클립보드 영역으로 데이터를 넘겨주기 위하여 CopyClipBoard맴버함수, CopyToHandle 맴버 함수를 추가하여, ID_EDIT_COPY이벤트 핸들러에 등록합니다. 먼저 CopyClipBoard 맴버 함수를 Doc Class에 작성하겠습니다.   반환 형식 : void 함수 이름…

One Comment

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다