Продолжая последний нерешенный вопрос о dll, я попытался создать fortran dll с помощью g95 с помощью следующих команд:
g95 -c FCall.f90
g95 -shared -mrtd -o FCall.dll FCall.o
Когда я связал его с VB, он показывает: «Невозможно найти точку входа с именем FortranCall в DLL «C:\Users\Hp\Documents\Visual Studio 2010\Projects\WindowsApplication5\WindowsApplication5\FCall.dll».
Вот код FORTRAN:
SUBROUTINE FortranCall (r1, num)
!DEC$ ATTRIBUTES DLLEXPORT :: FortranCall
!DEC$ ATTRIBUTES ALIAS:'FortranCall' :: FortranCall
REAL,INTENT(IN) :: r1
REAL,INTENT(OUT) :: num
num = MOD (r1, 256.0)
END SUBROUTINE
Вот код ВБ:
Private Sub Command1_Click()
r1 = 456.78
Call FortranCall(r1, Num)
Text1.Text = Str$(Num)
End Sub
Код модуля в VB:
Declare Sub FortranCall Lib"C:\Users\Hp\Documents\Visual Studio 2010\Projects\WindowsApplication5\WindowsApplication5\FCall.dll"
(r1 As Single, Num As Single)
Есть ли у G95 собственный оператор экспорта для функции экспорта из dll? в этой подпрограмме атрибут экспорта (!DEC$ ATTRIBUTES DLLEXPORT::FortranCall) использовался в визуальном фортране.