VS 2008 atlcom.h ClassesAllowedInStream not defined (cannot convert parameter)

不羁的心 提交于 2019-12-02 17:19:36

问题


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.



来源:https://stackoverflow.com/questions/5558278/vs-2008-atlcom-h-classesallowedinstream-not-defined-cannot-convert-parameter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!