インライン関数のインポートとエクスポート
更新 : 2007 年 11 月
インポート関数は、インラインで定義できます。その効果は普通の関数をインラインで定義するのとほぼ同じで、関数の呼び出しはマクロと同様にインライン コードに展開されます。この方法は、インライン展開によってメンバ関数の効率が上がる可能性がある C++ クラスで DLL をサポートする場合に特に効果的です。
インポート インライン関数の特長の 1 つは、C++ でそのアドレスを取得できることです。コンパイラは、DLL に存在するインライン関数のコピーのアドレスを返します。インポート インライン関数のもう 1 つの特長は、グローバルなインポート データと違って、インポート関数の静的なローカル データを初期化できることです。
注意 : |
---|
インポート インライン関数は、DLL のバージョン間で矛盾することがあるので、インライン関数のインポート時は注意が必要です。インライン関数は、アプリケーション コード内に展開されます。このため、関数を書き直した場合は、アプリケーション自体をコンパイルし直さないと、インライン関数は更新されません。通常、DLL 関数は、関数を使うアプリケーションをビルドし直さなくても更新できます。 |