如何从vb.net向intel fortran编的dll传递数组参数?(附代码)
去者 2005-08-13 10:10:14 fortran程序:
real function OrderPars(delta, deltam, omiga, v, length)
! Expose function OrderPars to users of this DLL
!
!DEC$ ATTRIBUTES DLLEXPORT::ORDERPARS
! 变量
integer length
real, allocatable :: delta(:)
real, allocatable :: deltam(:)
real, allocatable :: omiga(:)
real, allocatable :: v(:)
! allocate (delta(length), deltam(length), omiga(length), v(length))
! 函数体
! i = 5
OrderPars = v(1)
end function OrderPars
vb.net调用fortran动态库的程序:
Imports System.Runtime.InteropServices
......
<DllImport("CoreDll.dll", EntryPoint:="ORDERPARS")> Public Shared Function ORDERPARS(ByRef delta() As Single, ByRef deltam() As Single, ByRef omiga() As Single, ByRef v() As Single, ByRef Length As Integer) As Single
' Leave function empty - DllImport attribute forces calls
End Function
......
Dim result As Single = ORDERPARS(delta, deltam, omiga, v, Length)
执行到上面最后一局后出现对话框,上有下面所示的错误:
forrtl: severe (408): fort: (3): Subscript #1 of the array V has value 1 which is less than the lower bound of 2033201000.
......
Stack trace terminated abnormally.
请问这是什么原因?是fortran语言错了还是vb.net调用的时候错了?多谢了。