DOMCATEGORY_AUDIO_DECODER 식별자를 제대로 컴파일 하려면 어떻게 해야하나요?
      글쓴이: mydream / 작성시간: 화, 2017/01/03 - 2:25오후    
  
  #include <windows.h>
#include <tchar.h>
#include <dshow.h>
#include <Strmif.h>
#include <Amaudio.h>
#pragma comment(lib, "strmiids.lib")
#pragma comment(lib, "quartz.lib")
 
 
#include <dmodshow.h>//IDMOWrapperFilter
#pragma comment(lib, "Dmoguids.lib")//IDMOWrapperFilter
#include <Wmcodecdsp.h>//CLSID_CMP3DecMediaObject
//#include <Dmoreg.h>//DMOCATEGORY_AUDIO_DECODER
//#pragma comment(lib, "Dmoguids.lib")//DMOCATEGORY_AUDIO_DECODER
 
 
HRESULT h_result;
IGraphBuilder* pIGraphBuilder;
IBaseFilter* sourceFilter;
IBaseFilter* renderFilter;
DWORD WINAPI FindFilter(_In_ LPVOID lpParameter) {
 
	TCHAR lobuffer[1024];
	memset(lobuffer, 0, sizeof(lobuffer));
	MMSG msg=*((MMSG*)lpParameter);
	HDC mainHdc=GetDC(msg.hwnd);
	MessageBox(msg.hwnd, _T("FindFilter"), _T("jj"), MB_OK);
	h_result=CoInitialize(NULL);
	if(h_result!=S_OK) {
		MessageBox(msg.hwnd, _T("CoInitialize's failed."), FN, MB_OK);
	}
 
	h_result=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (LPVOID*)&pIGraphBuilder);
	if(h_result!=S_OK) {
		MessageBox(msg.hwnd, _T("CoCreateInstance's failed."), FN, MB_OK);
		return -1;
	}
 
 
 
	CoCreateInstance(CLSID_WMAsfReader, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&sourceFilter);
	//h_result=pIGraphBuilder->AddFilter(sourceFilter, L"Source Filter");
	h_result=pIGraphBuilder->AddSourceFilter(L"C:/Users/blueeye/Documents/GrapheditTr/2Minutes.mp3",  L"Source Filter", &sourceFilter);
 
	//CoCreateInstance(CLSID_CMP3DecMediaObject, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&renderFilter);
 
	CoCreateInstance(CLSID_DMOWrapperFilter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)renderFilter);
 
	IDMOWrapperFilter* pDmoWrapper;
	renderFilter->QueryInterface(IID_IDMOWrapperFilter, (void**)&pDmoWrapper);
 
	pDmoWrapper->Init(CLSID_CMP3DecMediaObject, DMOCATEGORY_AUDIO_DECODER);//여기서 DOMCATEGORY_AUDIO_DECODER 식별자를 찾을 수 없다고 컴파일이 컴파일시 오류 메시지를 내보냅니다.
	//pDmoWrapper->Init(CLSID_LegacyAmFilterGategory, DOMCATEGORY_AUDIO_DECODER);
	h_result=pIGraphBuilder->AddFilter(renderFilter, L"Transform Filter");
        //이하 코드 생략
   }코드 먼저 언급했습니다. 아래쪽에 주석처리 한 부분 보시면 DMOCATEGORY_AUDIO_DECODER에서 컴파일이 막힙니다. 저 식별자 제대로 컴파일 하려면 어떤 헤더와 lib파일이 필요한가요? 구글 검색해 해봤지만 잘 안됩니다.
Forums: 


저는 DirectX는 잘 모릅니다만
저는 DirectX는 잘 모릅니다만
제가 DMOCATEGORY_AUDIO_DECODER 구글 검색해 보니
http://telnet.or.kr/directx/htm/dmoguids.htm
가 첫 페이지에 바로 튀어나오는군요.
헤더 파일 Dmoreg.h 로 정의되어 Dmoguids.lib 라이브러리에 의해 export 되고 있다. 라고 친절하게 한국어로 설명해 주네요.
게다가 질문자님의 코드를 읽어보니 심지어
가 이미 있는데, 주석처리 되어 있네요!
교훈1: 코드를 포함한 질문에 답변할 때는 우선 코드를 잘 읽어 보자.
교훈2: 질문 올릴 때 "구글 검색해 해봤지만 잘 안됩니다." 라고 쓰기 전에, 정말로 구글 검색을 해서 최소 첫 페이지에 연결된 페이지 정도는 꼼꼼히 읽어 보자.
명쾌합니다.
명쾌합니다.
보면 모릅니까? 그 방법으로 해봤었습니다.
그래도 안되서 질문 올린겁니다. 컴파일도 안해보고 답변 올린 것 같은데요. 어떻게 모르면서 답변을 올리는지 모르겠군요. 대책이 없군요. 쯥. 모르면 그냥 가세요. 바쁜 세상인데....
그러게요. 바쁜 세상이지요.
그러게요. 바쁜 세상이지요.
저라면 그런 상황에서 질문을 올릴 때 "구글 검색을 해 봤더니 Dmoreg.h를 포함하라고 하던데(링크 포함) 그렇게 했는데도 여전히 이러이러한 컴파일러 에러 메시지가 뜨고 컴파일이 되지 않았습니다" 라고 썼을 겁니다.
구글 검색해 해봤지만 잘 안됩니다.가 아니라 말이죠. 그랬으면 저 같은 사람의 시간을 덜 낭비하지 않았겠습니까? 다른 답변자들에게 더 정확하게 상황을 전달할 수도 있었을 테고요.
아무튼, 도움이 되지 못했다니 유감이군요.
성격이 급하신가 봅니다.
댓글이나 답변을 달 의무는 없습니다. 알고 계시면 아는 대로 달아주시면 될 일이고, 바쁘면 그냥 지나칠 수도 있고요. 모르는데 달아주면 오히려 방해가 되겠죠. 이런 쓸데없는 글 남길 필요없이요. 그게 둘 모두에게 이익이 됩니다. 이런 글을 쓰게돼 오히려 유감이군요. 댓글 그만 다세요. 낭비입니다. 말을 못 알아듣는군요. 그냥 가세요라고 했는데 또 쓰게 만들고.
댓글 달기