首页 > 编程语言 > 详细

fortran语言调用fortran写的dll

时间:2019-03-10 22:59:35      阅读:229      评论:0      收藏:0      [点我收藏+]

环境:vs2013+IVF 2011

有时候想把fortran写的常用的函数编译为DLL,以供不同的fortran exe调用,这时候应该怎样做呢?【参考 彭国伦老师 fortran95 程序设计 书349和353页】

下面以写一个计算圆面积的dll来示例:

首先新建一个解决方案(solution),然后添加一个工程(project),一个解决方案下可以有多个工程,每个工程可以认为是一个大的功能区,每个都可以是一个完善的可执行软件exe。

 新建一个  fortran dynamic library类型的工程 sub:

 1 subroutine SUB(S,R)
 2 !程序作用是根据传入的圆的半径R,计算圆的面积S 
 3 !DEC$ ATTRIBUTES DLLEXPORT :: SUB
 4 !上面的语句是编译功能语句,DLL中可以被外界调用的函数都要写上面的语句,声明哪些函数可以被外界访问,不然外界无法访问。     
 5 implicit none
 6 double precision S,R
 7 write(*,*)"You are use subroutline in DLL"
 8 S=3.141592653*R**2!计算的面积可以通过传址传出去
 9 return
10 end
11       

此时可以 点击 生成---生成解决方案,会生成sub.lib 和 sub.dll

 

然后可以在同一个解决方案下新建另外一个 可执行文件类型的 工程 mainCallDll:

 1 program callDll_SUB
 2 implicit none
 3 double precision area,r
 4 r=2.0
 5 call sub(area,r)
 6 write(*,*)"r=",r,"area=",area
 7 pause
 8 stop
 9 end
10       

最后在mainCallDll工程上右键,设为启动项,然后再右键本工程,添加,选择sub工程中的sub.lib,此时可以点 击 生成---生成解决方案。

但此时是不可以运行的,要把sub.dll复制到与 mainCallDll.exe同目录下才行。

代码组织结构:

技术分享图片

技术分享图片

------


 

接下来调试dll:【参考:https://blog.csdn.net/caoshangpa/article/details/78733379   https://blog.csdn.net/qianghaohao/article/details/50190905

0. 将exe拷贝到dll生成目录下,并设置dll工程为启动项目。然后:

技术分享图片

 1.

技术分享图片

 

 2.

技术分享图片

 3.

技术分享图片

 

 4.

技术分享图片

 

fortran语言调用fortran写的dll

原文:https://www.cnblogs.com/zhubinglong/p/10507698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!