Fortran Coder

C++和Fortran混合编程的问题

查看数: 8584 | 评论数: 5 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-9-27 16:56

正文摘要:

本帖最后由 xd006 于 2015-9-27 17:14 编辑 请教一个C++和Fortran混合编程的问题,我以前做过一个比较复杂的Fortran程序,其中包含了很多子程序,现在想用C++调用,能否只将原来的Fortran主程序改为函数,并对该 ...

回复

pasuka 发表于 2015-9-27 21:05:38
1、Fortran代码得照iso_c_binding的规范写interface
2、C++代码得用extern “C”的申明函数
若是用gcc的话,C和F直接一起编译就行,C++和F稍微复杂些
xd006 发表于 2015-9-27 20:01:31
vvt 发表于 2015-9-27 18:20
可能是有依赖。比如 Libifcoremd.dll (只是举例)
用 Dependency walker 找找依赖,看这些依赖是否在 path ...

我在编译Dll时候,选择了Multithreaded,按道理应该时候取消依赖了啊,可是还是不行。
vvt 发表于 2015-9-27 18:20:58
可能是有依赖。比如 Libifcoremd.dll (只是举例)
用 Dependency walker 找找依赖,看这些依赖是否在 path 里?
也可以试试把这些依赖的 dll 复制到一起。或者取消依赖。

参考 http://fcode.cn/guide-53-1.html
xd006 发表于 2015-9-27 17:50:52
vvt 发表于 2015-9-27 17:15
只需更改您C++需要调用的程序既可。

fortran内部调用的函数无需修改,也无需由dll导出 ...

非常感谢!
您能帮忙看看附图中“HINSTANCE hLibrary=LoadLibrary(_T("SATRCSDLL.dll"))”是什么问题吗?为什么hLibrary没有值呢?
我用的VS2010.
vvt 发表于 2015-9-27 17:15:05
只需更改您C++需要调用的程序既可。

fortran内部调用的函数无需修改,也无需由dll导出

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

GMT+8, 2024-12-24 08:42

Powered by Tencent X3.4

© 2013-2024 Tencent

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