如何将Fortran exe与Fortran DLL相关联?

时间:2017-03-09 13:02:58

标签: dll fortran intel-fortran

我想将我的Fortran代码与此Fortran制作的DLL链接。

以简单的方式......

Fortran程序(可编辑代码) - LINK-- Fortran DLL(不可编辑)(通过Fortran程序代码链接方法??)

我想创建一个程序,我不想显示我的代码(这部分将以DLL形式)。

例如:

我在intel fortran中有一个DLL代码

SUBROUTINE TWICE(x,y)
IMPLICIT NONE
!DEC$ ATTRIBUTES DLLEXPORT::TWICE
REAL, INTENT(IN) :: x
REAL, INTENT(OUT) :: y
y=2*x
END SUBROUTINE TWICE

现在我想在另一个程序中使用这个DLL。 新程序是单独的程序,我想在中使用这个DLL 英特尔fortran写在下面。

PROGRAM TestToCallDLL
IMPLICIT NONE
!DEC$ ATTRIBUTES DLLIMPORT::TWICE
REAL :: x,y

WRITE(*,*)'x?'
READ(*,*)x
CALL Twice(x,y)
WRITE(*,*)'x twice = ',y

END PROGRAM TestToCallDLL

错误是:

Error   1    error LNK2019: unresolved external symbol __imp__TWICE referenced in function _MAIN__  twiceTEST.obj   
Error   2    fatal error LNK1120: 1 unresolved externals    Debug\twiceTEST.exe 

1 个答案:

答案 0 :(得分:0)

在链接期间必须使用编译器在创建.LIB时生成的.DLL文件。将其添加为依赖项。您也可以将其复制到新项目目录。

有关详情,请参阅英特尔Fortran for Windows支持论坛中的Calling Fortran DLL from C++ using Visual Studio 2008

相关问题