error C2668: 'ATL::InlineIsEqualGUID' : 오버로드된 함수에 대한 호출이 모호합니다.
Development/Failure Log 2013. 11. 8. 08:30Windows Embedded Compact 7 응용 어플리케이션 개발 설정을 위해 테스트 도중 다음과 같은 에러가 발생했다.
1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\atlmfc\include\atlbase.h(7362) : error C2668: 'ATL::InlineIsEqualGUID' : 오버로드된 함수에 대한 호출이 모호합니다.
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\atlmfc\include\atlosapice.h(1313): 'int ATL::InlineIsEqualGUID(const GUID &,const GUID &)'일 수 있습니다.
1> C:\Program Files (x86)\Windows CE Tools\SDKs\TCC892x_W7_SDK\include\ARMv4I\guiddef.h(138): 또는 'int InlineIsEqualGUID(const GUID &,const GUID &)'[인수 종속성을 조회하여 발견)
원인:
AtlBase.h에 using namepace ATL;이 선언되어있기 때문에 sdk와 충돌이 생기는 듯 하다.
해결 방법:
atlbase.h의 전역 네임스페이스 이름을 명시해준다.
::ATL::InlineIsEqualGUID()
예시:
if ((pEntry->pfnGetClassObject != NULL) && ::ATL::InlineIsEqualGUID(rclsid, *pEntry->pclsid)) { if (pEntry->pCF == NULL) { CComCritSecLocklock(_AtlComModule.m_csObjMap, false); hr = lock.Lock(); if (FAILED(hr)) { ATLTRACE(atlTraceCOM, 0, _T("ERROR : Unable to lock critical section in CComModule::GetClassObject\n")); ATLASSERT(0); break; } if (pEntry->pCF == NULL) hr = pEntry->pfnGetClassObject(pEntry->pfnCreateInstance, __uuidof(IUnknown), (LPVOID*)&pEntry->pCF); } if (pEntry->pCF != NULL) hr = pEntry->pCF->QueryInterface(riid, ppv); break; }
참고 링크:
'Development > Failure Log' 카테고리의 다른 글
error C2143: 구문 오류 : ';'이(가) '<' 앞에 없습니다. (0) | 2014.02.12 |
---|---|
error LNK2019 LNK1120: C++ 클래스 Inline 함수의 컴파일 에러 (0) | 2014.02.05 |
Can not find the binary google-chrome (0) | 2013.09.27 |
[Android ViewPager] java.lang.OutOfMemoryError (0) | 2013.07.08 |
이클립스 안드로이드 라이브러리 및 프로젝트 속성 에러 (0) | 2013.06.13 |