我想将我的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
答案 0 :(得分:0)
在链接期间必须使用编译器在创建.LIB
时生成的.DLL
文件。将其添加为依赖项。您也可以将其复制到新项目目录。
有关详情,请参阅英特尔Fortran for Windows支持论坛中的Calling Fortran DLL from C++ using Visual Studio 2008。