DLLのメイク


Developer Studioでのメイク
コマンドラインでのメイク
DEFファイルの利用
注意事項


Developer Studioでのメイク

Visual FortranのDeveloper Studioを使って,アンモニアPROPATHの ソースコード(JNH3.FOR)からDLLをメイクする方法を説明する.

  1. Developer Studioを起動し,[File] - [New..] を選択する.

  2. [New]ダイアログの[Projects]ページで[Win32 Dynamic-Link Library]を選択し, [Project Name]に適当な名前を入力する.ここで入力した名前がDLLのファイル名となる. 例えばJNH3.DLLというDLLにする場合は "JNH3" と入力する. [Location]にはプロジェクトを作成する適当なディレクトリを指定する.

  3. [OK]を押すと新しいプロジェクトが作成される.メインメニューの [Project] - [Add to Project..] - [Files..] を選択し, PROPATHのソースコード(JNH3.FOR)をプロジェクトに追加する.

  4. メインメニューの[File] - [New..]を選択し, [New]ダイアログの[Files]ページで[Fortran Free Format Source File]を選択する. [Add to Project]がチェックされていれば,保存したときに自動的にプロジェクトに 追加される.

  5. 新規のソースコードが作成されるので,エクスポートしたい関数の定義を書く.

  6. [File] - [Save As..]で作成したソースコードを保存し, [Build] - [Build JNH3.DLL]を実行する. メイクが正常に終了すれば,[Location]で指定したディレクトリの下に"Debug"という ディレクトリが作成され,そこにJNH3.DLLおよびインポートライブラリJNH3.LIBが作成される. インポートライブラリはVisual Fortran(あるいはVisual C/C++)でDLLを 利用する際に必要になる.

クイックビューワ(エクスプローラの右クリックで選択できる.Windows NTのみ)でJNH3.DLLから エクスポートされている関数が確認できる. "Export Table"以下にJNH3_PSTが見つかればメイクは成功である.


コマンドラインでのメイク

コマンドラインコンパイラ(FL32.EXE)およびリンカ(LINK.EXE)を使ってコンソール上で DLLをメイクする手順を説明する.

まず,FL32.EXEを使ってPROPATHのソースコードとエクスポートファイルをコンパイルする. 例えば,JNH3.FORおよびNH3.F90をコンパイルする場合,両者のファイルが存在する ディレクトリに移動し,

   fl32 /c /Oxp JNH3.FOR NH3.F90

のように入力する. "/Oxp"は最適化を行うためのオプションである. コンパイルが正常に終了すればオブジェクトファイル(JNH3.OBJおよびNH3.OBJ)が 同じディレクトリに作成される.

次に,リンカに"/DLL"オプションを付けて実行し,二つのオブジェクトファイルをリンクする.

   link /DLL JNH3.OBJ NH3.OBJ

リンクが正常に終了すればJNH3.DLLおよびインポートライブラリJNH3.LIBが作成される. DLLの名前はリンカを実行する際に最初に入力したオブジェクトファイル の名前が使われる.


DEFファイルの利用

DEFファイルを用いてエクスポート関数にエイリアスを定義する方法を説明する. 例えば,JNH3_PSTというエクスポート関数にPSTというエイリアスが 定義できれば便利である. このような場合,次の2行が書かれたファイルを作成する.

   EXPORTS
   PST = JNH3_PST

エイリアスとして定義する関数名はPSTのようにソースコードの中で既に使われている ものであっても良い. このファイルを"JNH3.DEF"のようなファイル名(拡張子が".DEF"とする)で保存し, DLLを作成するプロジェクトに追加してメイクする. コマンドラインコンパイラを用いる場合は,リンク時に,

   link /DLL /DEF:JNH3.DEF JNH3.OBJ NH3.OBJ

とする.

作成されたJNH3.DLLをクイックビューワで見れば,"Export Table"~以下にJNH3_PSTおよび PSTの二つが見つかり, 両者のエントリーポイントは同一になっているはずである.


注意事項

DLLをメイクする際の注意事項を列挙しておく.

DLLの呼び出し方法


お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送