Fortran と Visual Basic の呼び出し規約

Visual Basic のフォームで Fortran のサブルーチンと関数を設定すると,Fortran ルーチンが Basic モジュールから呼び出されます。Fortran ルーチンを Basic から呼び出すには,ルーチンが DLL (ダイナミック・リンク・ライブラリー) になっていなくてはなりません。DLL についての詳細は,「Fortran Dynamic-Link Library プロジェクト」と「Fortran DLL の作成」を参照してください。

呼び出し規約の ALIAS コンパイラ指示文 (または ATTRIBUTES オプションの ALIAS) は,名前に含まれる大文字と小文字を保存しなければならない場合に必要です (基本設定では,Fortran は名前をすべて大文字に変換します)。ただし,2 つの特殊なケースでは,これとは違う扱いをする必要があります。

次の Fortran と Visual Basic の文は,Basic から呼び出される Fortran 関数を設定しています。

Fortran コード:

!	Fortran 関数を定義する Fortran 副プログラム
	INTERFACE
	  DOUBLE PRECISION FUNCTION GetFVal (r1)
	    !DEC$ ATTRIBUTES ALIAS:'GetFVal' :: GetFVal
	    !DEC$ ATTRIBUTES VALUE :: r1
	    REAL r1
	  END FUNCTION
	END INTERFACE

Basic コード:

	'FORM.FRM Basic Form to establish Fortran function
	Declare Function GetFVal Lib "C:\f90\FVAL.DLL" (ByVal r1 As Single) As Double