Partilhar via


Erro do compilador C2813

#import não é suportado com /MP

Observações

C2813 é emitido se em um comando de compilador você especificar a opção de compilador /MP e dois ou mais arquivos para compilar, e um ou mais dos arquivos contém a diretiva de pré-processador #import . A diretiva #import gera classes C++ a partir dos tipos na biblioteca de tipos especificada e, em seguida, grava essas classes em dois arquivos de cabeçalho. A diretiva #import não é suportada porque se várias unidades de compilação importam a mesma biblioteca de tipos, essas unidades entram em conflito quando tentam gravar os mesmos arquivos de cabeçalho ao mesmo tempo.

Este erro de compilador e a opção de compilador /MP são novos no Visual Studio 2008.

Example

O exemplo a seguir gera C2813. A linha de comando no comentário "compilar com:" indica ao compilador para usar as opções do compilador /MP e /c para compilar vários arquivos. Pelo menos um dos ficheiros contém a diretiva #import . Usamos o mesmo arquivo duas vezes para testar este exemplo.

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