Respostas:
#import é uma coisa específica da Microsoft, aparentemente apenas para coisas COM ou .NET.
#include é uma instrução de pré-processador C / C ++ padrão, usada para incluir arquivos de cabeçalho (ou ocasionalmente outro código-fonte) em seu arquivo de código-fonte.
Importar em VC ++: #import é para bibliotecas de tipos ou .tlbs (coisas COM).
O conteúdo da biblioteca de tipos é convertido em classes C ++, principalmente descrevendo as interfaces COM para você automaticamente e, em seguida, é incluído em seu arquivo.
A #importdiretiva foi introduzida pela Microsoft como uma extensão da linguagem C ++. Você pode ler sobre isso neste artigo do MSDN .
A #importdiretiva também é usada com coisas .NET / CLI.
Importar no gcc:
a importação no gcc é diferente da importação no VC ++. É uma maneira simples de incluir um cabeçalho no máximo uma vez. (Em VC ++ e GCC você pode fazer isso via#pragma uma vez)
A #importdiretiva não foi oficialmente adotada pela equipe do gcc na versão 3.4 e funciona bem 99% do tempo em todas as versões anteriores do gcc que suportam
Incluir: #include destina-se principalmente a arquivos de cabeçalho, mas para anexar o conteúdo ao arquivo atual. #includefaz parte do padrão C ++. Você pode ler sobre isso neste artigo do MSDN .
import também foi uma das palavras-chave associadas a n2073, Módulos em C ++ , proposta ao comitê de linguagem por Daveed Vandevoorde em setembro de 2006. Não sou um geek da linguagem para saber se essa proposta foi definitivamente arquivada ou se está aguardando uma implementação (prova de conceito) do autor ou de outra pessoa ...
Observe que no gcc 4.1, #import está obsoleto. Se você usá-lo, receberá um aviso:
#importé uma extensão GCC obsoleta