Fortran Coder

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

[混编] C++与Fortran混编问题

[复制链接]

5

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
35 点
楼主
发表于 2019-5-9 12:29:20 | 显示全部楼层
本帖最后由 penultimate 于 2019-5-9 12:33 编辑

1. 在VS 中,Bind好像不管用,要用如下的格式导出FORTRAN的DLL:
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,DECORATE,ALIAS:'C++中调用时的名称,大小写敏感' :: FORTRAN中的名称
2. 在C++中,要声明下:
void(或FORTRAN中的FUNCTION的返回值类型)__stdcall FORTRAN的ALIAS属性中定义的名称 (float& a, float& b, float& c);

没有卑微的coding,就没有宏大的CAE

5

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
35 点
沙发
发表于 2019-5-9 12:38:31 | 显示全部楼层
本帖最后由 penultimate 于 2019-5-9 12:49 编辑

1. 在FORTRAN中加:
!DEC$ ATTRIBUTES DLLEXPORT,STDCALL,DECORATE,ALIAS:'sub_mixedCpp' :: sub_mixedCpp
把Bind去掉
2. 在C++中声明:
void __stdcall sub_mixedCpp (float& a, float& b, float& c);
3.链接属性里把lib加进去,确保exe能够找到FORTRAN的dll
做到以上3点,应该就可以了
没有卑微的coding,就没有宏大的CAE
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-4 14:17

Powered by Tencent X3.4

© 2013-2024 Tencent

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