就像前锋一样,在Fortran中,我是一个完整的初学者。我花了很长时间来看看其他问题,但我无法找到类似的问题,所以请原谅我,如果我的解决方案是明显的,或已经被回答:)通过简单的Fortran函数返回的奇数值
我是试图学习如何在VB.net应用程序中正确实现一个自写的Fortran DLL。我已经能够让VB识别DLL,并且没有任何错误地执行该函数。与实际产出相比,错误来自预期产出。
我Fortran的DLL函数如下:
function ex(i)
integer*4 i
ex=i+1
return
end
一个非常简单的函数,每次递增传递的参数和返回值。 (我认为)。 VB应用程序有以下代码。
<DllImport("ex.dll")> _
Public Shared Function ex(ByRef val As Integer) As Integer
End Function
Private Sub btn_Fortran_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Fortran.Click
Console.WriteLine(ex(1))
End Sub
所以,我通过ex函数的整数值1.所以我期望值2写入控制台。相反,我得到的值“1073741824”不完全相等。任何想法,我明显不足?
我只是猜测,所以这是一个评论。但是,似乎传递常量1可能不正确,因为导入参数被定义为ByRef。事实上,在我看来,它不应该建立。尝试声明一个整数并将其传递给'ex'。除此之外,如果它是一个param问题或返回值本身,我会试图缩小范围。改变你的函数'ex'来简单地返回一个常量;这可能有助于确定传入的参数是否错误或返回值是否无法正确恢复。 – 2010-08-19 23:06:41