请教关于FROTRAN 和 VC++ 的混合编程的问题。

egenie 2001-07-01 07:25:45
现在我的手头有一个较大的fortran有限元程序,是早期别人的成果,dos界面。希望可以将它转到windows下,并且可以在计算的过程中显示中间的结果。(数据量很大,逻辑较复杂)

考虑过用C/C++来重写,但是怕工作量太大,而且个人的力量不能保证正确性。所以想只是给它换个壳,C/C++中间调用FORTRAN源程序。

不知谁有混合编程的经验?请提供一点意见,可能的话请推荐一两这方面的书籍。

我会将高分奉于赐教者。更谢谢参与!

...全文
229 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
egenie 2001-09-07
  • 打赏
  • 举报
回复
对不起大家,现在才结账。
egenie 2001-07-11
  • 打赏
  • 举报
回复
我的信心要足很多了,谢谢你!
fuyang 2001-07-10
  • 打赏
  • 举报
回复
当然是了
egenie 2001-07-10
  • 打赏
  • 举报
回复
fuyang(fuyang) 

是很帅。只是,你调用VF中的subroutine就象调用其它外部文件的函数一样,是否指的是在vc中调用?
fuyang 2001-07-10
  • 打赏
  • 举报
回复
我现在也正在学习VC/Fortran混合编程,我采用的工具是VF6.1,它可以与VC6无边无缝结合,
值得一试,你调用VF中的subroutine就象调用其它外部文件的函数一样,是不是很帅。
egenie 2001-07-06
  • 打赏
  • 举报
回复
感谢前面几位仁兄,请后来者也积极参与!
egenie 2001-07-05
  • 打赏
  • 举报
回复
我还是加点分吧,凑足一百分。

要的朋友敬请不吝赐教,一定让你们不枉此行!
egenie 2001-07-05
  • 打赏
  • 举报
回复
sinx(纳兰容若) 
太感谢你了,你的回答真的很好,谢谢。

可否也留下你的mail地址,让我在疑难是可以拜师?
sinx 2001-07-03
  • 打赏
  • 举报
回复
将Fortran做成DLL是可以的,但是fortran程序中不能有屏幕交互的语句,

如READ(*,*),WRITE(*,*)等等;

否则就会运行过程中就会退出。


一般将FORTRAN程序做成DLL,在声明函数时应该如下:

SUBROUTINE MYDLLFUN
!MS$ATTRIBUTES DLLEXPORT :: MyDllFun

表示是可以输出的函数。

然后在连接时用 /DLL选项。

在C语言中,首先要声明这个函数:

extern "C"
{

__declspec(dllimport) void __stdcall MyDllFun(参数列表)

};

这里要采用__stdcall方式声明在fortran里的函数,C默认是__cdecl。

调用过程中要注意参数类型的转换,特别是字符串类型和多维数组。
C语言中字符串是以'\0'结尾的,而Fortran中没有这个要求。C语言
的多维数组是行优先的,而Fortran里面是列优先。

当然还有很多需要注意的地方,慢慢琢磨。
egenie 2001-07-03
  • 打赏
  • 举报
回复
快来人讨论啊!
egenie 2001-07-02
  • 打赏
  • 举报
回复
看来这个问题把大多数人都难住了,只有几位大虾给我建议。
叫我怎样给分了?10天后吧!
egenie 2001-07-01
  • 打赏
  • 举报
回复
谢谢,你的mail address.
另外,我的是:weifengrao@sina.com
forever_chang 2001-07-01
  • 打赏
  • 举报
回复
学vc的朋友请关注:
http://www.csdn.net/expert/topic/148/148799.shtm
xxxbird 2001-07-01
  • 打赏
  • 举报
回复
xxxbird@telekbird.com.cn
egenie 2001-07-01
  • 打赏
  • 举报
回复
xxxbird(*说你行,你就行,不行也行*) 

谢谢你提供的网址,我在上面找到几本好书,只是一时可能买不到。
我会尽力去做好的,因为这是我的论文的一大部分。可能到时还要你的帮助,能留EMAIL吗?
xxxbird 2001-07-01
  • 打赏
  • 举报
回复
如果将其做成函数库形式,则所有函数都运行在Windows环境下,只需要将生成的数据地址传给绘
图程序就行了,并不需要传送数据本身。
egenie 2001-07-01
  • 打赏
  • 举报
回复
谢谢!

绘图方面的程序要在windows下,现在一个关键性的问题是,如何在dos下产生数据后,很快进行大量数据的交换,让我在windows下用c/c++绘图。


xxxbird 2001-07-01
  • 打赏
  • 举报
回复
你可以去 www.flashbar.net 上去看看,可能会有一些对你有用的资料。
xxxbird 2001-07-01
  • 打赏
  • 举报
回复
在C/C++中直接调用FORTRAN源程序可能有些问题。你可以将FORTRAN程序做成函数库的形式在C++中调用。有关绘图的部分在DOS下与在Windows下是完全不同的,因此这部分的程序你必须重写。



wyzegg 2001-07-01
  • 打赏
  • 举报
回复
可能比较困难,编译器的版本都更新啦好多,以前在DOS的确可以连的,都是在目标代码阶段的连接,不知道现在的编译器支持不
加载更多回复(1)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧