重複の可能性:
.expの使用と.libと.dllの違いは何ですか
C++ ライブラリとリンクすると、*.lib ごとに *.exp ファイルに関連付けられます。*.exp は何をしますか?
***.lib / ***.exp
重複の可能性:
.expの使用と.libと.dllの違いは何ですか
C++ ライブラリとリンクすると、*.lib ごとに *.exp ファイルに関連付けられます。*.exp は何をしますか?
***.lib / ***.exp
エクスポート (.exp) ファイルには、エクスポートされた関数とデータ項目に関する情報が含まれています。LIB がインポート ライブラリを作成すると、.exp ファイルも作成されます。.exp ファイルは、別のプログラムに直接または間接的にエクスポートおよびインポートするプログラムをリンクするときに使用します。.exp ファイルとリンクする場合、LINK はインポート ライブラリを作成しません。これは、LIB が既に作成されていると想定するためです。
/DEF オプションを指定して LIB を使用すると、インポート ライブラリとエクスポート ファイルを作成できます。LINK は、エクスポート ファイルを使用して、エクスポート (通常はダイナミック リンク ライブラリ (DLL)) を含むプログラムを構築し、インポート ライブラリを使用して、他のプログラムでのそれらのエクスポートへの参照を解決します。
準備段階でインポート ライブラリを作成する場合、.dll を作成する前に、.dll を作成するときに、インポート ライブラリの作成時に渡したのと同じオブジェクト ファイルのセットを渡す必要があることに注意してください。
ほとんどの場合、LIB を使用してインポート ライブラリを作成する必要はありません。エクスポートを含むプログラム (実行可能ファイルまたは DLL) をリンクすると、LINK はエクスポートを記述するインポート ライブラリを自動的に作成します。後で、これらのエクスポートを参照するプログラムをリンクするときに、インポート ライブラリを指定します。
ただし、DLL がインポート元のプログラムにエクスポートする場合は、直接または間接的に、LIB を使用してインポート ライブラリの 1 つを作成する必要があります。LIB がインポート ライブラリを作成すると、エクスポート ファイルも作成されます。DLL の 1 つをリンクするときは、エクスポート ファイルを使用する必要があります。
MSDNから:
エクスポート (.exp) ファイルには、エクスポートされた関数とデータ項目に関する情報が含まれています。LIB がインポート ライブラリを作成すると、.exp ファイルも作成されます。.exp ファイルは、別のプログラムに直接または間接的にエクスポートおよびインポートするプログラムをリンクするときに使用します。.exp ファイルとリンクする場合、LINK はインポート ライブラリを作成しません。これは、LIB が既に作成されていると想定するためです。.exp ファイルとインポート ライブラリの詳細については、「インポート ライブラリとエクスポート ファイルの操作」を参照してください。