DirectShow Build하기

DirectX SDK 8.1에 있는 DShow를 기준으로 합니다. 빌드에 사용한 Visual Studio는 2008이고 OS는 Window7 64bit 입니다.

DirectX SDK 8.1 다운로드

DShow는 DXSDK\samples\Multimedia\DirectShow\dshow.dsw 를 불러오면됩니다.


BaseClasses를 시작 프로젝트로 잡고 빌드하거나 해당 프로젝트만 빌드를 시도합니다.

에러1
1>------ 빌드 시작: 프로젝트: BaseClasses, 구성: Debug Win32 ------
1>컴파일하고 있습니다...
1>dllentry.cpp
1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(290) : error C2146: 구문 오류 : ';'이(가) 'PVOID64' 식별자 앞에 없습니다.
1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(290) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(8992) : error C2146: 구문 오류 : ';'이(가) 'Buffer' 식별자 앞에 없습니다.
1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(8992) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
1>C:\Program Files\Microsoft SDKs\Windows\v7.0\include\winnt.h(8992) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
1>c:\Users\wwforever\Downloads\DirectX_8_SDK\DXSDK\samples\Multimedia\DirectShow\BaseClasses\ctlutil.h(278) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.

이 에러는 검색해보면 winnt.h 파일을 직접 수정하거나 프로젝트의 폴더 참조등의 여러 해결방법이 나옵니다. 저는 일단 dllentry.cpp 최상단에 #define POINTER_64 추가해서 해결했습니다.

에러2
1>dllentry.cpp
1>c:\Users\wwforever\Downloads\DirectX_8_SDK\DXSDK\samples\Multimedia\DirectShow\BaseClasses\ctlutil.h(278) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.

operator=(LONG); 이부분을 주석처리 합니다.

에러3
1>.\outputq.cpp(658) : error C2065: 'iDone' : 선언되지 않은 식별자입니다.
1>.\winutil.cpp(2118) : error C2065: 'Count' : 선언되지 않은 식별자입니다.

등의 에러가 나옵니다. 이는 구버젼 Visual Studio에서는 for문 안에 변수를 선언해도 그 밑에서 인식하던것이 기본적으로 안되도록 바뀌어서 나는 에러로 변수 선언을 for문등에서 상위로 빼주면 됩니다.

에러4
1>.\wxdebug.cpp(530) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.

static g_dwLastRefresh = 0; 부분을 static DWORD g_dwLastRefresh = 0; 변경합니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.