コンパイラ エラー C2813

更新 : 2007 年 11 月

エラー メッセージ

#import は /MP でサポートされていません

コンパイラ コマンドで /MP コンパイラ オプションと複数のコンパイル対象ファイルを指定したときに、#import プリプロセッサ ディレクティブが含まれているファイルが 1 つでもあった場合は、C2813 が出力されます。#import ディレクティブは、指定されたタイプ ライブラリの型から C++ クラスを生成し、それらのクラスを 2 つのヘッダー ファイルに書き込みます。複数のコンパイル単位が同一のタイプ ライブラリをインポートする場合、これらの単位は同時に同一のヘッダー ファイルを書き込もうとするときに競合するため、#import ディレクティブはサポートされません。

このコンパイラ エラーおよび /MP コンパイラ オプションは、Visual Studio 2008 の新機能です。

使用例

次の例では C2813 エラーが生成されます。"compile with:" コメントのコマンド ラインは、/MP コンパイラ オプションと /c コンパイラ オプションを使用して複数のファイルをコンパイルするようコンパイラに指示します。少なくとも 1 つのファイルに #import ディレクティブが含まれます。この例のテストの目的では、同じファイルを 2 回使用します。

// C2813.cpp
// compile with: /MP /c C2813.cpp C2813.cpp
#import "C:\windows\system32\stdole2.tlb"   // C2813
int main() 
{
}