DirectX SDK, Platform SDK, Visual Studio 6이 막 여기저기서 충돌한다.
특히 DirectShow 같은 옛스러운 라이브러리를.. 그것도 옵셔널한 방식으로 사용하려면..
우선 http://kindlion.egloos.com/tb/1173628 (트랙백) 을 참조하면, debug모드로 빌드할 때만 나타나는 링커 에러 - uuid.lib 호환성 문제를 해결할 수 있다.
=> uuid.lib(unknwn_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module
요지는, Platform SDK에 포함된 uuid.lib을 리네임해서 못 쓰게 만들어 버리는 것. VS6의 VC98/lib에 포함된 파일을 써야 한다. (VS2003에선 괜찮다고 함)
헌데, 호환성 문제를 완전히 종식시킨답시고 Options>Directories에서 Platform SDK 폴더를 VS6 기본 폴더 밑으로 넣어버리면 컴파일 에러가 수백개씩 나게 된다.
(일단 여기까지는 LCMS 프로젝트 기준)
LCMS에서는 DirectShow의 Extras - Samples로 들어가 있는 Base Classes Library (strmbase.lib)도 사용하는데... 이건 VC98에 들어있긴 하지만, DirectX SDK에 들어 있는 버전에서 빠진 게 몇 개 있어서 일부 링커 에러가 나타나고...
현재 공식적으로 다운로드할 수 있는 DirectX SDK (9.0 처럼 버전 이름 안 들어가고 2007 Apr 처럼 릴리즈 연월만 나오는 놈들)에는 없다..-_-;
옛날 버전의 Direct X 9 SDK (C:\DX90SDK에 설치하는 버전) 를 받으면 거기에 BaseClasses.dsw가 있는데, 이놈을 Project setting해서 빌드하면 각 프로젝트 세팅에 맞는 lib 파일이 튀어나온다(릴리즈 모드는 strmbase.lib, 디버그 모드는 strmbasd.lib).
이것들을 카피해서 써야 한다.