Fortranで作成したDLL参照で間違ったフォーマットのエラー
解決したいこと
素人です。
VBからFortranで作成したDLLを参照するとエラーが生じます。
VB側からデバックした場合に生じます。(VB:Debug、DLL:Release)
どうやらべき乗の指数に引数を充てるとなるようなのですが。
すみません素人考えです。解決方法はどういったものが考えられるでしょうか?
VisualStudio2022、IntelFortranCompiler2024.1を統合した環境
発生している問題・エラー
ハンドルされてない例外
System.BadImageFormatException: '間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外:0x8007000B)'
下記コードのCall FORTRAN_EXTERNAL(A, B)で発生
該当するソースコード
Public Class Form1
Declare Sub FORTRAN_EXTERNAL Lib "・・・\x64\Release\FortranDLLMulti.dll" _
(ByRef A As Double, ByRef B As Double)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim A As Double = 44
Dim B As Double = 2.5
Call FORTRAN_EXTERNAL(A, B)
End Sub
End Class
module FortranDLLMulti
implicit none
contains
SUBROUTINE FORTRAN_EXTERNAL(A, B)
!DEC$ ATTRIBUTES DLLEXPORT :: FORTRAN_EXTERNAL
!DEC$ ATTRIBUTES ALIAS : "FORTRAN_EXTERNAL" :: FORTRAN_EXTERNAL
implicit none
real(8), intent(inout) :: A
real(8), intent(inout) :: B
A = A ** B
END SUBROUTINE
end module FortranDLLMulti
自分で試したこと
・「**」を「*」にすると通る。
・DLL側からのデバックでは通る。
・A**BのBを直接数値2.5にしたり、別途用意した変数C=2.5にすると通る。