2014-04-24 22 views
0

내가 graphEditPlus (사용 VS2010)에 의해 생성 된 코드를 실행하려고하지만 다음 줄이있는 데 문제 : 오류가 있습니다ISampleGrabber 선언되지 않은 식별자

CComQIPtr<ISampleGrabber, &IID_ISampleGrabber> pSampleGrabber_isg(pSampleGrabber); 

: 오류 C2065 : 'ISampleGrabber' 선언되지 않은 식별자 오류 C2065 : 'IID_ISampleGrabber': 선언되지 않은 식별자 오류 C2514 : 'ATL :: CComQIPtr은'클래스는 내가 윈도우 SDK의 다른 버전을 다운로드 시도에는 생성자

이 없습니다 (V7.1, V6.0A, V5) include/lib 경로를 설정했지만 여전히 동일한 prob를 가짐 흠!

SampleGrabber가 계속 지원됩니까? 주로 SampleGrabber은 ... 당신의 도움을

감사합니다 ... 비디오 캡처 소스에서 프레임을 잡아 내 코드에 사용되는

Microsoft는 그러나 당신이 만약 당신이 수입 샘플 그래버 전체 DES API를 사용되지
+0

합니까 [링크] (HTTP :

복사/붙여 넣기 및 프로젝트 (파일의 맨 위에 #pragma 섹션)에 선언을 다시 추가하는 코드 단편도 RenderWmvVideo.cpp보기 msdn.microsoft.com/en-us/library/windows/desktop/dd376984(v=vs.85).aspx) 도움이 필요하십니까? –

+0

마침내 이전 SDK 버전 (V5, V6.0)에서 qedit.h를 복원하고 누락 된 "dxtrans.h"에 ifndef/def를 사용했습니다. 이 문제를 부분적으로 해결했지만 이제는 다음과 같은 오류가 발생합니다. 오류 C2970 : 'ATL :: CComQIPtr': 템플릿 매개 변수 'piid': 'IID_ISampleGrabber': 내부 연결이있는 개체를 포함하는 식은 형식이 아닌 인수로 사용할 수 없습니다. – Basel

답변

0

형식 라이브러리를 사용하거나 선언을 프로젝트에 복사하면 구성 요소가 완전히 사라지고 최신 SDK 샘플에서 직접 빌드하는 등의 다른 솔루션이 필요할 수도있는 일부 최신 OS 릴리스 (Windows Server 2008?)를 제외하고는 여전히 사용할 수 있습니다. .

자세한 내용은 ISampleGrabber deprecated: where can I find alternatives?을 참조하십시오. // :

#pragma region Windows SDK Tribute, qedit.h 

struct __declspec(uuid("0579154a-2b53-4994-b0d0-e773148eff85")) 
ISampleGrabberCB : IUnknown 
{ 

... 

#pragma endregion 
+0

감사합니다 @Roman, pragma 섹션이 qedit.h를 포함하지 않도록 코드에 추가되었다고 가정합니다. 이 포함하는 경우이를 정의하는 데 도움이 오류 C2970 점점 : 'ATL :: CComQIPtr': 템플릿 매개 변수 'piid': 'IID_ISampleGrabber': 내부 연결 개체를 포함하는 식을 아닌 - 형식 인수. 어쨌든 pSampleGrabber_isg는 미디어 유형을 설정하기위한 것이고이 줄을 주석 처리 할 때 코드를 성공적으로 실행할 수있는 것 같습니다. – Basel

+0

ISampleGrabber가 성공적으로 정의되었으므로, 나는 당신의 대답을 실제 해결책으로 생각할 것입니다. 고맙습니다! – Basel

+0

'CComQIPtr '이면 충분합니다. 당신은 UID를 붙이지 않고 정의 된 [더 오래된] 인터페이스들을 위해', IID _... '를 사용해야한다. –