더북(TheBook)

소스 4-18의 상단에 IppDib.h 헤더 파일을 포함(#include)하고 있음에 주목해야 한다. OnLButtonDown 함수에서 IppDib 클래스를 사용하고 있기 때문에 IppDib 클래스가 정의된 IppDib.h 파일을 반드시 포함해주어야 한다. 만약 IppDib.h 파일을 포함하지 않으면 Visual C++ 컴파일러는 다음과 같은 에러를 발생시킬 것이다.

error C2065 : 'IppDib' : 선언되지 않은 식별자입니다.

프로그램 작성 시 필요한 헤더 파일을 포함하지 않을 경우, 단순히 하나의 에러 메시지가 나타나는 것이 아니라 경우에 따라 수십 개의 에러 메시지가 나올 수도 있다. 헤더 파일을 포함하는 것은 간단한 작업이지만, 실제 프로그램을 작성하다 보면 실수로 헤더 파일을 포함하지 않는 경우가 종종 발생한다. 컴파일러의 에러 메시지 중에 ‘선언되지 않은 식별자’를 사용하고 있다는 에러 메시지가 있다면 관련된 헤더 파일을 포함하지 않았는지를 확인해보는 것이 좋을 것이다.

이제 Visual Studio에서 [빌드] > [솔루션 빌드] 메뉴 항목을 선택하거나 단축키 F7을 눌러서 실행 파일을 만들어보자. 에러가 발생하지 않았다면 [디버그] > [디버깅 시작] 메뉴 항목을 선택하거나 또는 단축키 F5를 눌러 IppCreate 프로그램을 실행해보자. BmpShow 프로그램과 마찬가지로 IppCreate 프로그램이 정상적으로 동작하기 위해서는 프로그램이 실행되는 같은 폴더에 lenna.bmp 파일이 존재해야 한다. IppCreate 프로그램의 뷰 영역에서 마우스를 클릭하여 lenna.bmp 파일의 내용이 정상적으로 화면에 나타나는지를 확인해보자. 그림 4-10은 IppCreate 실행 화면을 보여준다.

그림 4-10 IppCreate 프로그램 실행 화면

지금까지 IppDib 클래스를 이용하여 BMP 파일을 화면에 출력하는 방법에 대해 알아보았다. BmpShow 프로그램에서는 수십 줄 넘게 작성했던 복잡한 코드가 IppDib 클래스를 사용함으로써 오직 4줄로 간결해졌다. 게다가 IppDib 클래스 함수의 이름(Load, Draw)을 보면 무슨 일을 하는지도 쉽게 알 수 있게 되었다. 이제 IppDib 클래스를 만드느라 고생한 보람을 느낄 수 있을 것이다. C++에서 클래스를 만드는 일은 어렵고 복잡한 작업중의 하나지만, 클래스를 만들고 난 후에는 코드 작성이 매우 쉬워진다는 것을 확인할 수 있었으리라고 본다. IppImage 클래스의 사용 방법은 추후 실제 영상 처리 알고리즘을 구현할 때 자세히 설명할 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.