两种方法:
(1)直接使用Fortran代码编译出来的obj文件进行链接。使用IVF(Intel Visual Fortran Compiler)进行编译得到obj文件,在VC2008中进行加入其link即可,如test1.obj。
(2)在Fortran函数声明中加入DLLEXPORT项,令其成为导出函数,在VC2008加入test1.lib的link即可。注意不管Fortran中是subroutine还是function,都要加入形参类型的声明,方可导出:
double precision function addF(x, y)
!DLLEXPORT选项
!DEC$ ATTRIBUTES DLLEXPORT, STDCALL:: addF
!形参类型声明
double precision x, y
addF = 2
return
end function addF
不管上述哪种方法,最后注意在VC2008中调用函数前进行声明,如:
extern "C" double __stdcall addf(double x, double y);
如果还有不清晰的地方,请用google搜索文章《基于VS2008 和IVF11 的C/C++和Fortran 混合编程》,内有详细介绍。
评论