VS 2008 atlcom.h ClassesAllowedInStream not define

2020-04-30 17:09发布

问题:

I am trying to build a project in VC++2008 and it is giving the following error:

error C2664: 'HRESULT ATL::CComVariant::ReadFromStream
(IStream *,VARTYPE,ATL::ClassesAllowedInStream,DWORD)' :
cannot convert parameter 3 from 'const int' to 'ATL::ClassesAllowedInStream'
c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h
6054

Can anyone help?

回答1:

This is an error that stems from a bug in the VS2008 Service Pack 1 installation. I had the same problem.

A workaround for me was to reinstall VS 2008 (setup option "repair/clean new install") and then immediately install SP1.

The bug occurs if a Windows SDK is installed between the installation of VS2008 and SP1. In this case, the VS2008 SP1 installation updates the file atlcom.h, but fails to update its included file atlcomcli.h accordingly, thus ClassesAllowedInStream is undefined.

See the discussions on MSDN Social and in this mailing list.