Partilhar via


Erro do compilador C2813

#import não é suportado com /MP

C2813 será emitido se em um comando do compilador você especificar a opção do compilador /MP e dois ou mais arquivos a serem compilados, e um ou mais dos arquivos contiverem a diretiva de pré-processador #import. A diretiva #import gera classes C++ a partir dos tipos na biblioteca de tipos especificada e grava essas classes em dois arquivos de cabeçalho. Não há suporte para a diretiva #import porque se várias unidades de compilação importarem a mesma biblioteca de tipos, essas unidades entrarão em conflito quando tentarem gravar os mesmos arquivos de cabeçalho ao mesmo tempo.

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

Exemplo

A amostra a seguir gera o erro 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 arquivos 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()
{
}