違いは何ですか #include
および#import
C++で?
#import
はMicrosoft固有のもので、明らかにCOMまたは.NETのもの専用です。
#include
は標準のC/C++プリプロセッサステートメントで、ソースコードファイルにヘッダー(または場合によっては他のソースコード)ファイルを含めるために使用されます。
VC++でインポート:#import
はタイプライブラリまたは.tlbs(COMのもの)用です。
タイプライブラリのコンテンツは、ほとんどの場合自動的にCOMインターフェイスを記述するC++クラスに変換され、ファイルに含まれます。
#import
ディレクティブは、C++言語の拡張機能としてMicrosoftによって導入されました。 このMSDN記事 でそれについて読むことができます。
#import
ディレクティブは、.NET/CLIのものでも使用されます。
gccでのインポート:gccでのインポートはVC++でのインポートとは異なります。これは、ヘッダーを1回だけ含める簡単な方法です。 (VC++およびGCCでは、#pragma
一度も)
#import
ディレクティブは、バージョン3.4でgccチームによって公式に廃止されておらず、サポートするgccのすべての以前のバージョンで99%の時間で正常に動作します
含む:#include
は主にヘッダーファイル用ですが、コンテンツを現在のファイルの先頭に追加します。 #include
はC++標準の一部です。 このMSDN記事 でそれについて読むことができます。
#import
は全体的にソリューション通常
#ifndef ...
#define ...
#include ...
#endif
回避策。 #import
には、以前に含まれていなかった場合にのみファイルが含まれます。
AppleのObjective-Cも#import
ステートメントを使用していることに注意してください。
importは、9月にDaveed Vandevoordeによって言語委員会に提案された n2073、C++のモジュール に関連付けられたキーワードの1つでもありました2006.私は、その提案が決定的に棚上げにされたのか、それとも作者や他の人からの実装(概念実証)を待っているのかを知るのに十分な言語マニアではありません...
Gcc 4.1では、#import
is非推奨です。それを使用すると、警告が表示されます:
#import
は非推奨のGCC拡張機能です