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






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

2009/07/09 00:19

복사 http://blog.naver.com/kimjb1216/10052492478




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

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





















 종류 파일 명 비 고
헤더 파일
(Include File)
 dshow.h  
 라이브러리 파일
(Library File)
 strmiids.lib  
 quartz.lib  
 strmbasd.lib (Debug 용)
 strmbase.lib (Release 용)
 

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

MSDN에 DirectShow 관련 페이지에 있는 안내 구문
http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx

Previous versions of the DirectShow SDK shipped as part of the DirectX SDK. The last version of the DirectX SDK that included DirectShow was “DirectX 9.0 SDK Update – (February 2005) Extras.” The DirectShow SDK was moved to the Windows SDK starting with the Microsoft® Windows Server 2003 SP1 Platform SDK. To get the latest DirectShow SDK, download the latest version of the Windows SDK.


기준 환경 : Windows XP 이상, Visual Studio 2005, 2008 이상

1. Microsoft SDK 와 Microsoft DirectX 를 다운로드 받는다.




2. Microsoft SDK 와 Microsoft DirectX 를 설치한다.

3. Visual Studio 2008에 포함파일(Include File)과 라이브러리 파일(Library File) 경로를 등록해 준다.

Visual Studio 2008 메뉴에서 도구 < 옵션 < 프로젝트 및 솔루션 < VC++ 디렉토리에서

포함파일(Include File)을 선택한 후 아래의 경로를 추가해 준다.



  • 설치된 Microsoft SDK 경로\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses
  • 설치된 Microsoft DirectX SDK 경로\Include
  • 설치된 Microsoft SDK 경로\Windows\v6.0\Include



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

  • 설치된 Microsoft DirectX SDK 경로\Lib\x86
  • 설치된 Microsoft SDK 경로\Windows\v6.0\Lib\x86

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++ 모든 프로젝트에 해당되므로 한번만 작업해주면 된다.

5. 개발환경 구축 완료

여기까지 DirectShow Filter를 개발하기 위한 개발환경을 구축하는 법을 알아보았다. 다음에는 간단한 필터 제작을 해보면서 개발환경이 잘 작동하는지 확인해 보도록 하겠다.





답글 남기기

이메일 주소는 공개되지 않습니다.