112 votes

C++ comprennent et l'importation de différence

Quelle est la différence entre #include et #import en C++?

94voto

Brian R. Bondy Points 141769

Importer dans VC++: #import est pour les bibliothèques de types ou .les tlb (COM).

Le contenu de la bibliothèque de type est converti en C++ classes, surtout décrivant les interfaces COM automatiquement pour vous, et puis il est inclus dans votre fichier.

L' #import directive a été présenté par Microsoft comme une extension du langage C++. Vous pouvez lire à ce sujet dans cet article MSDN.

L' #import directive est également utilisé avec d' .NET / CLI choses.

Importer dans gcc: L'importation dans gcc est différente de l'importation dans VC++. C'est une façon simple d'inclure un en-tête plus d'une fois seulement. (Dans VC++ et GCC, vous pouvez le faire via #pragma une fois)

L' #import directive a été officiellement undeprecated par l'équipe de gcc en version 3.4 et fonctionne très bien à 99% du temps dans toutes les précédentes versions de gcc qui soutiennent

Inclure: #include est pour la plupart des fichiers d'en-tête, mais d'ajouter le contenu de votre fichier actuel. #include fait partie de la norme C++. Vous pouvez lire à ce sujet dans cet article MSDN.

71voto

Head Geek Points 10874

#import Microsoft-chose, apparemment pour COM ou .NET des trucs.

#include est une norme préprocesseur C/C++ déclaration, utilisés pour inclure l'en-tête (ou parfois d'autres code source) des fichiers dans votre fichier de code source.

11voto

thatha Points 99

#import est dans l'ensemble une solution à l'habitude

#ifndef ...
#define ...
#include ...
#endif

travail autour de. #import inclut un fichier seulement si il n'a pas été inclus avant.

Il est intéressant de noter qu'Apple Objective-C utilise également #import des déclarations.

4voto

Don Wakefield Points 4684

l'importation a également été l'un des mots-clés associés avec n2073, des Modules en C++, a proposé au comité des langues par Daveed Vandevoorde en septembre 2006. Je ne suis pas assez la langue, un geek pour savoir si cette proposition a été définitivement mis de côté, ou si elle est en attente d'une mise en œuvre (preuve de concept) de l'auteur ou de quelqu'un d'autre...

4voto

Mike Godin Points 303

Veuillez noter que dans gcc 4.1, #import est obsolète. Si vous l'utilisez, vous obtiendrez avertissement:

#import est obsolète GCC extension

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X