Fortran Coder
标题:
C++调用fortran程序DLL
[打印本页]
作者:
joy111111
时间:
2016-11-30 09:41
标题:
C++调用fortran程序DLL
各位fortran大神好!向您求教一个问题。我想用C++调用已有的fortran程序(生成dll)。我的fortran程序的函数都是在module里面写的,如:fortran里面有MODULE f_gpsmjd,在它里面定义了函数GPSMJD.在生成dll后,不能直接extern "C" {double _stdcall GPSMJD(double ,int); },就是怎么调用module里面的函数呢?
非常感谢!
作者:
joy111111
时间:
2016-11-30 11:38
解决了,添加C属性 !DEC$ ATTRIBUTES C, DLLEXPORT :: GPSMJD
作者:
fcode
时间:
2016-11-30 11:43
论坛“编程工具区”有混编分类,里面有不少帖子
你可以考虑用 ISO_C_Binding 的方式实现,更规范。
作者:
joy111111
时间:
2016-11-30 13:26
啊 还是不对,未解
作者:
joy111111
时间:
2016-11-30 14:24
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里面函数的帖子。 您能否给一个小例子,非常感谢~~
作者:
fcode
时间:
2016-11-30 14:43
试试 Bind( C , Name = "f_GPSMJD" )
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2