태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

달력

06

« 2017/06 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  

'Platform SDK'에 해당되는 글 2

  1. 2008.10.29 Platform SDK 2003 SP1에서 DirectShow BaseClasses 컴파일하기
  2. 2007.06.18 DirectX SDK에 얽힌 삽질 (5)

DirectShow 관련해서는 프로젝트 환경을 깔끔하게 세팅하기가 참 어려운 것 같다. 지난 번에는 Visual Studio 6.0에서 DirectShow 컴파일할 때 했던 삽질 얘기였는데 이번에는 VS 2005다.

DirectShow 필터를 만들려면 샘플 프로젝트 중에서 BaseClasses 프로젝트를 컴파일해서 strmbase.lib 를 만들어야 하는데, 주어진 상황에서 뭔가 쉽게 잘 안되는 문제가 있었다.

주어진 상황은

  1. Visual Studio 2005
  2. Windows Server 2003 SP1 Platform SDK
  3. DirectX SDK 9.0

2003 SP1 Platform SDK 에서는 DirectShow가 PSDK 쪽으로 옮겨졌다. 그리고 BaseClasses 프로젝트가 솔루션 파일을 갖고 있지 않다. 그래서 nmake 를 가지고 컴파일을 해야한다.

어쨌거나 컴파일을 하면 뭔가 잔뜩 에러가 나온다. VC++ 8의 변경 사항 중에, for 문의 시작 조건 부분에서 선언한 변수의 범위가 for 블럭만으로 제한되도록 바뀐 것 때문에 이런 에러가 나는 것으로 확인되었다.

그렇다면 Makefile을 수정하여 컴파일 옵션을 변경해야 한다. 간단히 Makefile을 열고 컴파일 명령이 있는 부분에 /Zc:forScope- 라는 옵션을 추가하면 된다.

한 고비 넘었다. 그리고 다시 컴파일을 하면 에러 갯수가 확 줄어드는 것을 볼 수 있었다. 남은 에러를 보면 대강 '타입이 지정되지 않았는데, 이제는 int 라고 가정해버리는 짓따위는 하지 않아' 정도의 변명이었다.

몇 군데 함수 리턴 타입이 지정되지 않은 곳에서 에러가 발생하는 것인데 이건 별도로 옵션이 있는게 아니라서 소스를 직접 고쳐야 한다. 주변 소스에 맞게 적절히 타입을 선언해주고 다시 컴파일하면 성공!

사실 그냥 다음 버전인 Windows Server 2003 R2 Platform SDK 만 깔아도 문제가 해결된다고 하는데, PSDK를 또 까는게 귀찮아서 이런 삽질을 했다. -_-;

신고
Posted by wafe

댓글을 달아 주세요

2007.06.18 13:40

DirectX SDK에 얽힌 삽질 분류없음2007.06.18 13:40

DirectShow를 쓰는 프로젝트를 컴파일 할 일이 생겨서 DirectX SDK 2005 June Update를 설치했다. 그러나 컴파일 실패! DirectShow를 쓰려고 설치한 SDK에 DirectShow만 쏙 빠져있다니 이런 낭패가 있나.

What happened to DirectShow?를 보니 2005년에 나온 Windows Server 2003 SP1 Platform SDK부터는 DirectShow를 포함하게 되었고 따라서 DirectShow가 DirectX SDK에서 빠지게 되었다고 한다.

나는 Platform SDK를 2003 February 버전으로 쓰고 있었으니 자... 그럼 Platform SDK를 업데이트 해볼까? Windows® Server 2003 SP1 Platform SDK Web Install 페이지로 이동해보니 두둥!

The last SDK that will work with VC 6.0 is the February 2003 Edition, you can order a CD on the fulfillment site. Side by side installations are not supported.

VC++ 6.0을 지원하는 마지막 Platform SDK는 2003년 Feb 버전이라고 한다. 휴우... 자세히 읽어보길 잘했지.

Platform SDK 버전에 맞춰서 대략 2003년에 나온 DirectX 9.0 SDK를 찾아보니 2003년 10월 쯤에 나온 Summer 2003 버전이 있다. 이걸 설치하고 컴파일하니 OK!

도움될 만한 정보가 있을까싶어 구글 검색을 하다보니 비슷한 문제로 글을 남긴 사람이 있다. 이런 중요한 변경 사항이 있으면 어디 잘 보이는데 대문짝만하게 좀 써 붙이고 그랬으면 좋겠구먼. MS -_-+

신고
Posted by wafe

댓글을 달아 주세요

  1. U.Seung 2007.06.18 14:58 신고  댓글주소  수정/삭제  댓글쓰기

    이런 삽질을 안해도 되는 세상이 오면 참 행복할텐데 말이죠. ㅎㅎ

  2. 노헝그리 2007.06.18 15:57 신고  댓글주소  수정/삭제  댓글쓰기

    개발자와 삽질은 뗄레야 뗄 수 없는 관계인 것 같습니다.ㅎ

  3. INVICTUS 2007.06.21 16:45 신고  댓글주소  수정/삭제  댓글쓰기

    아아악;ㅁ;!!!!!내 이틀에 걸친 노력은!!

    • wafe 2007.06.24 22:16 신고  댓글주소  수정/삭제

      크... 제가 좀 더 일찍 글을 썼으면 더 나았을까요?

      동업자들의 정신적 건강을 위해서라도 삽질은 자랑할 만한 일이라는 생각이 문득 듭니다.

  4. maximus 2007.10.12 21:21 신고  댓글주소  수정/삭제  댓글쓰기

    VC6.0 호환 되는 마직 SDK들입니다.

    Platform SDK : Windows Server 2003 PSDK (February 2003)
    DirectX SDK : DirectX 9.0 SDK Update - (Summer 2004)