現在、fortran dll である abc.dll があります。ここで、abc.dll から C# コードを呼び出したいと考えています。fortran dll から C# コードを呼び出す方法はありますか?
ありがとうサーガル
通常、プログラムが完全にネイティブコードで記述されている場合(Fortran dllがそうであると私は信じていますdllexport
)、別のネイティブコードモジュールからエクスポートされた()メソッドを呼び出す必要があります。この場合、ネイティブインターフェイスを公開し、内部でC#コードを呼び出すマネージC++dllを作成する必要があります。
編集:ホスティングプログラムがマネージコードであり、C#-> Fortran(ネイティブ)-> C#呼び出しシーケンスを実行する必要がある場合は、上記のコメントでリンクされているように、アンマネージ関数ポインターとしてのデリゲートを使用できます。ただし、実行可能ファイルがマネージコードでない場合は、前述のルートをたどる必要があります。
最近のFortran言語機能(2003標準)をサポートするコンパイラーは、C相互運用をサポートします。ISO_C_BINDING
モジュールとBIND
コンストラクトを使用して、Cインターフェイスを介して他のコードとインターフェイスします。最近のコンパイラにはそれがあり、それは標準であり、キーワードISO_C_BINDINGをグーグルで検索することで(このような)多くのドキュメントを見つけることができます。