2013-08-28 6 views

答えて

9

DLLをビルドすると、DLLのインポートライブラリが自動的に作成されます。エクスポートされたすべての関数のリストが含まれています。インポートライブラリは、DLLを使用する別のプロジェクトで使用します。

COMサーバーに固有のことは、これら4つのエクスポートされた関数は常にGetProcAddress()で検出され、COM dllに暗黙の依存関係がないことです。 CoCreateInstance()を使用してCOMオブジェクトを作成する場合は、COM配管でDLLを検索し、GetProcAddress()を使用してDllGetClassObject()関数を探します。 Regsvr32.exeによって発見されたDllUn/RegisterServerの同じ話。そして、COM配管工によって発見されたDllCanUnloadNow。したがって、インポートライブラリは必要ありません。

PRIVATEを使用すると、関数がインポートライブラリにエクスポートされないことが保証されます。それらのすべてをプライベートにすると、インポートライブラリはまったくありません。あなたがそれを省略すると、何も間違ってはいけません。リンカから、あなたが使用しない余分なファイルを取得するだけです。

関連する問題