본문 바로가기

프로그래밍/버그 & 에러 리포팅

atlcom.h에서 ClassesAllowedInStream rgclsidAllowed; 에러가 나는 경우

1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C2146: syntax error : missing ';' before identifier 'rgclsidAllowed'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(6053) : error C2039: 'rgclsidAllowed' : is not a member of 'ATL::ATL_PROPMAP_ENTRY'
1>        c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(422) : see declaration of 'ATL::ATL_PROPMAP_ENTRY'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(6053) : error C2660: 'ATL::CComVariant::ReadFromStream' : function does not take 4 arguments


기존에 잘 쓰던 ATL 프로젝트가 이번에 atl 패치로 인해 컴파일이 되지 않았다.

기존에 static으로 atl을 사용하던 부분이였는데 아직 정확한 원인은 파악되지 않았지만

일단 설정에서 Use of ATL 의 옵션값을 Dynamic Link to ATL로 변경하여 사용하면 된다.

물론 atl90.dll 과 manifest를 추가로 같이 배포해야 한다.