Ошибка компилятора C2813
директива #import не поддерживается с параметром /MP
Ошибка 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()
{
}