컴파일러 오류 C2813

/MP를 지정하면 #import를 사용할 수 없습니다.

C2813은 컴파일러 명령에서 /MP 컴파일러 옵션과 컴파일할 파일을 둘 이상 지정하고 파일 중 하나 이상에#import 전처리기 지시문이 포함된 경우에 내보내집니다. #import 지시문은 지정된 형식 라이브러리의 형식에서 C++ 클래스를 생성한 다음 두 개의 헤더 파일에 이러한 클래스를 씁니다. 여러 컴파일 단위가 동일한 형식 라이브러리를 가져오는 경우 동시에 동일한 헤더 파일에 쓰려고 할 때 해당 단위가 충돌하기 때문에 #import 지시문은 지원되지 않습니다.

이 컴파일러 오류 및 /MP 컴파일러 옵션은 Visual Studio 2008의 새로운 기능입니다.

예시

다음 샘플에서는 C2813을 생성합니다. "compile with:" 주석의 명령줄은 /MP/c 컴파일러 옵션을 사용하여 여러 파일을 컴파일하도록 컴파일러에 알립니다. 파일 중 하나 이상에 #import 지시문이 포함되어 있습니다. 이 예제를 테스트하기 위해 동일한 파일을 두 번 사용합니다.

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