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를 포함하라고 하던데(링크 포함) 그렇게 했는데도 여전히 이러이러한 컴파일러 에러 메시지가 뜨고 컴파일이 되지 않았습니다" 라고 썼을 겁니다.
구글 검색해 해봤지만 잘 안됩니다.가 아니라 말이죠. 그랬으면 저 같은 사람의 시간을 덜 낭비하지 않았겠습니까? 다른 답변자들에게 더 정확하게 상황을 전달할 수도 있었을 테고요.
아무튼, 도움이 되지 못했다니 유감이군요.
성격이 급하신가 봅니다.
댓글이나 답변을 달 의무는 없습니다. 알고 계시면 아는 대로 달아주시면 될 일이고, 바쁘면 그냥 지나칠 수도 있고요. 모르는데 달아주면 오히려 방해가 되겠죠. 이런 쓸데없는 글 남길 필요없이요. 그게 둘 모두에게 이익이 됩니다. 이런 글을 쓰게돼 오히려 유감이군요. 댓글 그만 다세요. 낭비입니다. 말을 못 알아듣는군요. 그냥 가세요라고 했는데 또 쓰게 만들고.
댓글 달기