앞으로와 마찬가지로, 나는 Fortran과 관련하여 완전한 초보자입니다. 나는 잠시 동안 다른 질문을 보냈지 만 이와 비슷한 질문을 할 수 없었기 때문에 내 해결책이 확실하거나 이미 대답 한 경우 용서해주십시오.단순한 포트란 함수에 의해 반환 된 홀수 값
저는 VB.net 응용 프로그램에서 자체 작성된 Fortran DLL을 올바르게 구현하는 방법을 배우려고합니다. VB에서 DLL을 인식하고 오류없이 함수를 실행할 수있었습니다. 이 오류는 실제 출력과 비교하여 예상 출력과 같습니다. 다음과 같이
내 포트란 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"값을 얻습니다. 정확히 일치하지는 않습니다. 내가 분명히 부족한 아이디어는?
저는 그냥 추측입니다. 그래서 이것은 의견입니다. Import의 매개 변수가 ByRef로 정의되었으므로 상수 1을 전달하는 것이 올바르지 않을 수 있습니다. 사실, 그것은 지어서는 안된 것 같습니다. 정수를 선언하고이를 'ex'에 전달하십시오. 그 이상으로, 나는 그것이 param 문제이거나 반환 값 그 자체라면 범위를 좁히려 고 노력할 것이다. 단순히 상수를 반환하려면 함수 'ex'를 변경하십시오. 전달 된 매개 변수가 잘못되었거나 반환 값이 올바르게 반환되지 않는 경우 식별하는 데 도움이됩니다. –