DOMCATEGORY_AUDIO_DECODER 식별자를 제대로 컴파일 하려면 어떻게 해야하나요?

mydream의 이미지

#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파일이 필요한가요? 구글 검색해 해봤지만 잘 안됩니다.

 의 이미지

저는 DirectX는 잘 모릅니다만

제가 DMOCATEGORY_AUDIO_DECODER 구글 검색해 보니
http://telnet.or.kr/directx/htm/dmoguids.htm
가 첫 페이지에 바로 튀어나오는군요.

헤더 파일 Dmoreg.h 로 정의되어 Dmoguids.lib 라이브러리에 의해 export 되고 있다. 라고 친절하게 한국어로 설명해 주네요.

게다가 질문자님의 코드를 읽어보니 심지어

//#include <Dmoreg.h>//DMOCATEGORY_AUDIO_DECODER
//#pragma comment(lib, "Dmoguids.lib")//DMOCATEGORY_AUDIO_DECODER

가 이미 있는데, 주석처리 되어 있네요!

교훈1: 코드를 포함한 질문에 답변할 때는 우선 코드를 잘 읽어 보자.
교훈2: 질문 올릴 때 "구글 검색해 해봤지만 잘 안됩니다." 라고 쓰기 전에, 정말로 구글 검색을 해서 최소 첫 페이지에 연결된 페이지 정도는 꼼꼼히 읽어 보자.

Anti-Lock의 이미지

명쾌합니다.

mydream의 이미지

그래도 안되서 질문 올린겁니다. 컴파일도 안해보고 답변 올린 것 같은데요. 어떻게 모르면서 답변을 올리는지 모르겠군요. 대책이 없군요. 쯥. 모르면 그냥 가세요. 바쁜 세상인데....

 의 이미지

그러게요. 바쁜 세상이지요.

저라면 그런 상황에서 질문을 올릴 때 "구글 검색을 해 봤더니 Dmoreg.h를 포함하라고 하던데(링크 포함) 그렇게 했는데도 여전히 이러이러한 컴파일러 에러 메시지가 뜨고 컴파일이 되지 않았습니다" 라고 썼을 겁니다.

구글 검색해 해봤지만 잘 안됩니다.가 아니라 말이죠. 그랬으면 저 같은 사람의 시간을 덜 낭비하지 않았겠습니까? 다른 답변자들에게 더 정확하게 상황을 전달할 수도 있었을 테고요.

아무튼, 도움이 되지 못했다니 유감이군요.

mydream의 이미지

댓글이나 답변을 달 의무는 없습니다. 알고 계시면 아는 대로 달아주시면 될 일이고, 바쁘면 그냥 지나칠 수도 있고요. 모르는데 달아주면 오히려 방해가 되겠죠. 이런 쓸데없는 글 남길 필요없이요. 그게 둘 모두에게 이익이 됩니다. 이런 글을 쓰게돼 오히려 유감이군요. 댓글 그만 다세요. 낭비입니다. 말을 못 알아듣는군요. 그냥 가세요라고 했는데 또 쓰게 만들고.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.