Fortran Coder

查看: 14646|回复: 5
打印 上一主题 下一主题

[混编] C++调用fortran程序DLL

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
19 元
贡献
8 点
跳转到指定楼层
楼主
发表于 2016-11-30 09:41:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5F 币
各位fortran大神好!向您求教一个问题。我想用C++调用已有的fortran程序(生成dll)。我的fortran程序的函数都是在module里面写的,如:fortran里面有MODULE f_gpsmjd,在它里面定义了函数GPSMJD.在生成dll后,不能直接extern "C" {double _stdcall  GPSMJD(double ,int); },就是怎么调用module里面的函数呢?
非常感谢!

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

4

帖子

1

主题

0

精华

新人

F 币
19 元
贡献
8 点
沙发
 楼主| 发表于 2016-11-30 11:38:43 | 只看该作者
解决了,添加C属性 !DEC$ ATTRIBUTES C, DLLEXPORT :: GPSMJD
回复

使用道具 举报

1962

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1353 元
贡献
572 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2016-11-30 11:43:48 | 只看该作者
论坛“编程工具区”有混编分类,里面有不少帖子
你可以考虑用 ISO_C_Binding 的方式实现,更规范。
回复

使用道具 举报

4

帖子

1

主题

0

精华

新人

F 币
19 元
贡献
8 点
地板
 楼主| 发表于 2016-11-30 13:26:34 | 只看该作者
啊 还是不对,未解
回复

使用道具 举报

4

帖子

1

主题

0

精华

新人

F 币
19 元
贡献
8 点
5#
 楼主| 发表于 2016-11-30 14:24:23 | 只看该作者
fcode 发表于 2016-11-30 11:43
论坛“编程工具区”有混编分类,里面有不少帖子
你可以考虑用 ISO_C_Binding 的方式实现,更规范。 ...

您好!我现在可以使用显式调用,如GPSMJD gpsmjd= (GPSMJD )GetProcAddress(hLibrary,"f_GPSMJD _mp_GPSMJD ");  但还是实现不了常用的隐式方法,我在您所说的模块看到http://bbs.fcode.cn/forum.php?mo ... ypeid%26typeid%3D16,但没有找到用C++调用fotran的module里面函数的帖子。 您能否给一个小例子,非常感谢~~
回复

使用道具 举报

1962

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1353 元
贡献
572 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

6#
发表于 2016-11-30 14:43:26 | 只看该作者
试试 Bind( C , Name = "f_GPSMJD" )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-26 02:15

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表