2011-02-07 14 views
1

私はVS2008 Standard Editionを使用しています。_ATL_DLL_IMPLがATLヘッダーでコンパイルエラーの原因となっています

これはClassesAllowedInStreamが知られていないというエラーが発生します:atlcom.hを含めて、これはコンパイルエラーを与えているライブラリここ

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」:関数は「

#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 

を4つの引数を取り、関連する宣言を見ていません(atlcomcli.h):\プログラムファイル(x86の)\のMicrosoft Visual Studioの9.0 \ VC \ atlmfc:

HRESULT ReadFromStream(_Inout_ IStream* pStream, VARTYPE vtExpected = VT_EMPTY); 

マイMFC/ATLヘッダーは、Cにある私の知る限りではMSVCから標準インストール++、あります。サードパーティ製のライブラリは、多数の人のために働き、十分にテストされているので、私の設定は何らかの方法で責任があると確信しています。それは何らかの理由で_ATL_DLL_IMPLが定義されていないが、それはする必要がありますか?

アイデア?

答えて

3

「プロジェクトプロパティ - >構成プロパティ - >一般 - > ATLの使用」オプションを「ATLへのダイナミックリンク」に変更する必要があります。

関連する問題