1
我正在使用VS2008標準版。庫中包括atlcom.h,這是給編譯錯誤:_ATL_DLL_IMPL在ATL標頭中導致編譯錯誤
這就提出了一個錯誤ClassesAllowedInStream
不知道:
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
};
在這裏,我得到一個錯誤「「ATL: :CComVariant :: ReadFromStream」:函數不接受4個參數「
#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
而綜觀目前相關申報(atlcomcli.h):
HRESULT ReadFromStream(_Inout_ IStream* pStream, VARTYPE vtExpected = VT_EMPTY);
我的MFC/ATL頭是從MSVC++據我所知,位於C的標準安裝:\程序文件(x86)\微軟的Visual Studio 9.0 \ VC \ atlmfc 。第三方庫適用於很多人,並且經過了充分測試,所以我很確定我的配置是以某種方式歸咎於它的。看起來由於某種原因_ATL_DLL_IMPL
沒有被定義,但它應該是?
任何想法?