インライン関数のインポートとエクスポート
インポートされた関数はインラインとして定義できます。 この効果は、標準関数をインラインで定義する場合とほぼ同じです。関数の呼び出しは、マクロと同様にインライン コードに展開されます。 これは、主に、メンバー関数の一部を効率性のためにインライン化する可能性のある DLL 内の C++ クラスをサポートする方法として役立ちます。
インポートされたインライン関数の特徴の 1 つは、C++ でそのアドレスを取得できることです。 コンパイラは、DLL に存在するインライン関数のコピーのアドレスを返します。 インポートされたインライン関数のもう 1 つの特徴は、インポートした関数の静的なローカル データを、インポートされたグローバル データとは異なり、初期化できることです。
注意事項
インポートされたインライン関数を提供する場合は、バージョンの競合が発生する可能性があるため、注意が必要です。 インライン関数はアプリケーション コードに展開されます。そのため、後で関数を書き直す場合、アプリケーション自体が再コンパイルされない限り、更新されません。 (通常、DLL 関数は、それらを使用するアプリケーションをリビルドせずに更新できます)。