LNK 2001에러 관련 질문 드립니다.

Directx 9.0c sdk를 이용하여
동영상 플레이어 제작을 하고 있습니다.
거의 마무리 단계에서 LNK 2001 에러가 나오는데..
어찌 해결해야 할지 모르겠습니다.
아래는 에러 코드 입니다.
1MPEG.obj : error LNK2001: _CLSID_DefaultDirectSound 외부 기호를 확인할 수 없습니다.
1MPEG.obj : error LNK2001: _CLSID_MPEGAudioDecoder 외부 기호를 확인할 수 없습니다.
1MPEG.obj : error LNK2001: _CLSID_MPEGVidoeDecoder 외부 기호를 확인할 수 없습니다.MyCLSID.h 라는 헤더 파일을 임포트 시켜서
아래와 같이 추가 했습니다.
#ifndef __MYGUID_INCLUDED__
#define __MYGUID_INCLUDED__

#ifndef OUR_GUID_ENTRY
#define OUR_GUID_ENTRY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8);
#endif

// CLSID 추가 하기

// MPEG Layer-3 Decoder {38BE3000-DBF4-11D0-860E-00A024CFEF6D}
OUR_GUID_ENTRY(CLSID_MPEGLayer3Decoder, 0x38BE3000, 0xDBF4, 0x11D0, 0x86, 0x0E, 0x00, 0xA0, 0x24, 0xCF, 0xEF, 0x6D)

// Default DirectSound Device {79376820-07D0-11CF-A24D-0020AFD79767}
OUR_GUID_ENTRY(CLSID_DefaultDirectSound, 0x79376820, 0x07D0, 0x11CF, 0xA2, 0x4D, 0x00, 0x20, 0xAF, 0xD7, 0x97, 0x67)

//MPEG Audio Decoder {4A2286E0-7BEF-11CE-9BD9-0000E202599C}
OUR_GUID_ENTRY(CLSID_MPEGAudioDecoder, 0x4A2286E0, 0x7BEF, 0x11CE, 0x9B, 0xD9, 0x00, 0x00, 0xE2, 0x02, 0x59, 0x9C)
//OUR_GUID_ENTRY(CLSID_CMpegAudioCodec, 0x4a2286e0, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x0, 0x0, 0xe2, 0x2, 0x59, 0x9c)

//MPEG Video Decoder {FEB50740-7BEF-11CE-9BD9-0000E202599C}
OUR_GUID_ENTRY(CLSID_MPEGVidoeDecoder, 0xFEB50740, 0x7BEF, 0x11CE, 0x9B, 0xD9, 0x00, 0x00, 0xE2, 0x02, 0x59, 0x9C)
//OUR_GUID_ENTRY(CLSID_CMpegVideoCodec, 0xfeb50740, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x0, 0x0, 0xe2, 0x2, 0x59, 0x9c)

// 70e102b0-5556-11ce-97c0-00aa0055595a Video renderer
//OUR_GUID_ENTRY(CLSID_VideoRenderer, 0x70e102b0, 0x5556, 0x11ce, 0x97, 0xc0, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a)

#undef OUR_GUID_ENTRY
#endif // __MYGUID_INCLUDED__

그리고 아래는 이 추가한 코드에 대한 함수부분 입니다.(필터 로드 부분)#include CLSID.h
.

.

.

.BOOL CMPEG::FilterLoad()
{
HRESULT hr=NULL;

MultiByteToWideChar(CP_ACP, 0, m_pstrSourceFilter, -1, m_wcSourceFilter, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, m_pstrMPEGStream, -1, m_wcMPEGStream, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, m_pstrMPEGAudioDecoder, -1, m_wcMPEGAudioDecoder, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, m_pstrDDSoundDevice, -1, m_wcDDSoundDevice, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, m_pstrMPEGAudioDecoder, -1, m_wcMPEGVideoDecoder, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, m_pstrVideoRenderer, -1, m_wcVideoRenderer, MAX_PATH);
//File Load
MultiByteToWideChar(CP_ACP, 0, (LPSTR)(LPCTSTR)g_strName, -1, m_wcSourceName, MAX_PATH);

// source filter ,,, Add Filter & FileName
hr = CoCreateInstance(CLSID_AsyncReader, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pISourceFilter);
if (FAILED(hr)) return hr;

//AddSourceFilter(재생하려는 파일 이름 , Source Filter 이름 , IBaseFilter)
hr = m_pGB-AddSourceFilter(m_wcSourceName, m_wcSourceFilter, &m_pISourceFilter);
if (FAILED(hr)) return hr;// MPEG-1 Stream Splitter
hr = CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIMPEGStream);
if (FAILED(hr)) return hr;
hr = m_pGB-AddFilter(m_pIMPEGStream, m_wcMPEGStream);
if (FAILED(hr)) return hr;// MPEG Video Decoder
hr = CoCreateInstance(CLSID_MPEGVidoeDecoder, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIMPEGVideoDecoder);
// hr = CoCreateInstance(CLSID_CMpegVideoCodec, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIMPEGVideoDecoder);
if (FAILED(hr)) return hr;
hr = m_pGB-AddFilter(m_pIMPEGVideoDecoder, m_wcMPEGVideoDecoder);
if (FAILED(hr)) return hr;

// Video Renderer
hr = CoCreateInstance(CLSID_VideoRenderer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIVideoRenderer);
if (FAILED(hr)) return hr;
hr = m_pGB-AddFilter(m_pIVideoRenderer, m_wcVideoRenderer);
if (FAILED(hr)) return hr;

// MPEG Audio Decoder
hr = CoCreateInstance(CLSID_MPEGAudioDecoder, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIMPEGAudioDecoder);
// hr = CoCreateInstance(CLSID_CMpegAudioCodec, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pIMPEGAudioDecoder);
if (FAILED(hr)) return hr;
hr = m_pGB-AddFilter(m_pIMPEGAudioDecoder, m_wcMPEGAudioDecoder);
if (FAILED(hr)) return hr;

// Default DirectSound Device
hr = CoCreateInstance(CLSID_DefaultDirectSound, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_pISoundDevice);
if (FAILED(hr)) return hr;
hr = m_pGB-AddFilter(m_pISoundDevice, m_wcDDSoundDevice);
if (FAILED(hr)) return hr; return TRUE;
}

댓글 0

아직 댓글이 없습니다.

프로그램 개발일반 다른 글

목록