次の方法で共有


/EXPORT (関数のエクスポート)

更新 : 2007 年 11 月

/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]

解説

このオプションは、プログラムから関数をエクスポートして、ほかのプログラムがその関数を呼び出すことができるようにします。また、データもエクスポートできます。通常、エクスポートは DLL ファイルで定義されています。

entryname は、呼び出しプログラムが使用するのと同一の関数またはデータ項目の名前です。ordinal の範囲は 1 ~ 65,535 であり、エクスポート テーブルにおけるインデックスを指定します。ordinal を指定しないと、LINK によって自動的に割り当てられます。NONAME キーワードを指定すると、entryname を使用せずに、指定されたインデックスだけで関数がエクスポートされます。

DATA キーワードは、エクスポートされた項目がデータ項目であることを示します。クライアント プログラムにおいて、このデータ項目は extern __declspec(dllimport) を使って宣言する必要があります。

定義をエクスポートするには、次の 3 とおりの方法 (推奨順) があります。

  1. ソース コードでキーワード __declspec(dllexport) を使う。

  2. .def ファイルで EXPORTS ステートメントを使う。

  3. LINK コマンドで、/EXPORT 指定を使う。

同じプログラムでこの 3 つの方法すべてを使用できます。エクスポートを含むプログラムを LINK でビルドすると、インポート ライブラリも同時に作成されます。ただし、ビルドで .exp ファイルが使用されている場合は除きます。

LINK は、装飾された形式の識別子を使用します。.obj ファイルの作成時に、コンパイラが識別子を装飾します。entryname が装飾されない形式 (ソース コードでの形式と同じ) でリンカに渡されると、LINK は該当する名前を探します。一致する名前が 2 つ以上見つかると、エラー メッセージが表示されます。リンカに対して装飾形式で識別子を指定する必要がある場合は、DUMPBIN ツールを使って装飾名を得ます。

7k30y2k5.alert_note(ja-jp,VS.90).gifメモ :

__cdecl または __stdcall として宣言されている C 言語の識別子は、装飾形式で指定しないでください。

Visual Studio 開発環境でこのリンカ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「Visual C++ プロジェクトのプロパティの設定」を参照してください。

  2. [リンカ] フォルダをクリックします。

  3. [コマンド ライン] プロパティ ページをクリックします。

  4. [追加のオプション] ボックスにオプションを入力します。

このリンカをコードから設定するには

参照

参照

リンカ オプションの設定

リンカ オプション