我正在尝试自学从 VB 调用 fortran 子程序。我正在尝试使用非常简单的示例,但不知何故它不起作用。我正在使用带有 Intel Visual Fortran 的 Visual Studio 2010。这是我正在尝试的代码:
SUBROUTINE ARRAYTEST(arr)
!DEC$ ATTRIBUTES DLLEXPORT, ALIAS:"ARRAYTEST" :: ARRAYTEST
REAL arr(3, 7)
INTEGER i, j
DO i = 1, 3
DO j = 1, 7
arr (i, j) = 11.0 * i + j
END DO
END DO
END SUBROUTINE
并成功构建以创建 DLL 文件。这是我的 Visual Basic 代码:
Public Class Form1
Private Declare Sub ARRAYTEST Lib "FortTest.DLL" Alias "ARRAYTEST" (ByVal x As Single)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim arr(0 To 2, 0 To 6) As Single
Call ARRAYTEST(arr(0, 0))
TextBox1.Text = arr(3, 3)
End Sub
End Class
当我将 DLL 文件放入目录并运行代码时,出现以下错误: ForRun.exe 中发生了“System.AccessViolationException”类型的第一次机会异常
我用谷歌搜索但没有找到解决方案,如果有人能告诉我我做错了什么以及如何解决它,我将不胜感激。非常感谢你。