Visual studio 2008 _ATL_DLL_IMPL导致ATL标头中出现编译错误
我使用的是VS2008标准版。库包含atlcom.h,这会导致编译错误: 这会引发一个未知的Visual studio 2008 _ATL_DLL_IMPL导致ATL标头中出现编译错误,visual-studio-2008,visual-c++,atl,winapi,Visual Studio 2008,Visual C++,Atl,Winapi,我使用的是VS2008标准版。库包含atlcom.h,这会导致编译错误: 这会引发一个未知的ClassesAllowedInStream错误: 在这里,我得到一个错误“”ATL::CComVariant::ReadFromStream”:函数不接受4个参数 并查看相关声明(atlcomcli.h): 据我所知,我的MFC/ATL头是MSVC++的标准安装,位于C:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\atlmfc中。第三方库适用于大
ClassesAllowedInStream
错误:
在这里,我得到一个错误“”ATL::CComVariant::ReadFromStream”:函数不接受4个参数
并查看相关声明(atlcomcli.h):
据我所知,我的MFC/ATL头是MSVC++的标准安装,位于C:\Program Files(x86)\Microsoft Visual Studio 9.0\VC\atlmfc中。第三方库适用于大量用户,并且经过了良好的测试,因此我很确定我的配置在某种程度上是错误的。似乎出于某种原因,\u ATL\u DLL\u IMPL
没有定义,但应该定义吗
有什么想法吗?您可能需要将“项目属性->配置属性->常规->使用ATL”选项更改为“动态链接到ATL”
struct ATL_PROPMAP_ENTRY
{
LPCOLESTR szDesc;
DISPID dispid;
const CLSID* pclsidPropPage;
const IID* piidDispatch;
DWORD dwOffsetData;
DWORD dwSizeData;
VARTYPE vt;
#if !defined(_ATL_DLL_IMPL) && !defined(_ATL_DLL)
ClassesAllowedInStream rgclsidAllowed;
DWORD cclsidAllowed;
#endif
};
#if defined(_ATL_DLL_IMPL)
hr = var.ReadFromStream(pStm, pMap[i].vt);
#else
hr = var.ReadFromStream(pStm, pMap[i].vt, pMap[i].rgclsidAllowed, pMap[i].cclsidAllowed);
#endif
HRESULT ReadFromStream(_Inout_ IStream* pStream, VARTYPE vtExpected = VT_EMPTY);