본문 바로가기

About Programing/07. Direct Show

Visual Studio 2008 에서 DirectShow 개발환경 구축하기

출처 : http://hyukmini.tistory.com/15

 시중에 나온 DirectShow 서적을 보면 예제가 모두 Visual C++ 6.0 기반으로 작성되어 있고 개발환경을 구축하는
방법 역시 VC++ 6.0 기준으로 되어있다. 따라서 이 글은 초보자가 최신 환경에서 DirectShow Filter를 개발할 수
있도록 개발환경을 구축하는 정보를 제공하기 위해 작성되었다.


 DirectShow를 기반으로 한 애플리케이션을 개발하기 위해서는 일반적으로 아래와 같은 파일들이 필요하다.
 하지만 아래 파일들이 버전이 바뀌어 감에 따라 이리저리 옮겨가고 심지어는 직접 빌드해서 사용해야 하기 때문에
사용자들에게 혼란을 주고 초보자가 개발환경을 구축하는데 어려운 점이 발생해 흔히 말하는 '삽질'을 하게 된다.

 DirectShow는 DirectX에 포함되어 배포되어 왔으나 DirectX 9.0 SDK (February 2005)를 마지막으로 이후부터
Windows SDK에 포함되기 시작하였다. 따라서 February 2005 이후 버전의 개발환경을 설정을 하려면 다른 방법을
사용해야만 한다.

기준 환경 : Windows 7, Visual Studio 2008 SP1

1. Microsoft SDKMicrosoft DirectX 를 다운로드 받는다.
2. Microsoft SDK 와 Microsoft DirectX 를 설치한다.
3. Visual Studio 2008에 포함파일(Include File)과 라이브러리 파일(Library File) 경로를 등록해 준다.

 Visual Studio 2008 메뉴에서 도구 < 옵션 < 프로젝트 및 솔루션 < VC++ 디렉토리에서
포함파일(Include File)을 선택한 후 아래의 경로를 추가해 준다.

설치된 Microsoft SDK 경로\Windows\v7.1\Samples\multimedia\directshow\baseclasses
설치된 Microsoft DirectX SDK 경로\Include
설치된 Microsoft SDK 경로\Windows\v7.1\Include

 라이브러리 파일(Library File)을 선택한 후 아래의 경로를 추가해 준다.

설치된 Microsoft DirectX SDK 경로\Lib\x86
설치된 Microsoft SDK 경로\Windows\v7.1\Lib

4. BaseClasses 빌드
 이전 버전의 DirectShow에서는 strmbasd.lib 파일이 함께 포함되어 있지만 Windows SDK로 옮겨진 후에는
이 파일을 등록된 라이브러리 디렉토리 안에서 찾을 수 없다. 따라서 아래 경로에 있는 BaseClasses 샘플을
빌드하여 라이브러리 디렉토리로 옮겨서 사용하여야만 한다.
 먼저 설치된 Microsoft SDK 경로\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses 경로에
있는 프로젝트를 연다.

 Debug 모드로 빌드 후 아래와 같이 Debug 디렉토리 내 strmbasd.lib 파일이 생성된 것을 확인 할 수 있다.
Release 모드로 빌드한 경우 역시 Release 디렉토리 내 strmbase.lib 파일이 생성되어 있을 것이다.

 각각 두 파일의 용도는 서로 다르다. 디버그 모드에서 라이브러리를 링크할 때는 strmbasd.lib, 릴리즈 모드에서
라이브러리를  링크할 때는  strmbase.lib를 사용하면 된다.


 strmbasd.lib 파일과 strmbase.lib 파일을 "설치된 Microsoft SDK 경로\Windows\v6.0\Lib" 로 옮긴다.
2~3까지 과정은 VS 2008의 VC++ 모든 프로젝트에 해당되므로 한번만 작업해주면 된다.