回 帖 发 新 帖 刷新版面

主题:如何在VC中调用Fortran程序?

主程序是C的,主要的计算部分是Fortran编的,要把Fortran编成DLL在C中调用,不过怎么编成DLL和怎么调用我还不太明白,请高手指导一下,我把大概的程序模式写一下:
void main()
   {
     double  a,b,c,d;
      cout<<"enter a:";
      cin >> a;
      cout<<"enter b:";
      cin >>b;
      cout<<"enter c:";
      cin >>c;
      d=subroutine(a,b,c);
      fprintf("%f\n",d)
}
其中子程序subroutine是用Fortran编写的,有返回值,在计算的过程中subroutine中还调用了一些其他的计算子程序,均为Fortran编写。

回复列表 (共6个回复)

沙发

高手们给点意见吧

板凳

函數名叫subroutine?您確定么?
在Fortran中導出的是什么函數名就用什么,可以用“宏”來確定到底是CDECL還是STDCALL。
另:如果用的是CVF或是IVF,那生成的LIB是可以直接用的;但如果是其他的則有可能不能直接用:)

3 楼

C里要先进行声明才能使用函数
既然是C,也不必使用iostream
Fortran是传址的,所以C传向Fortran必须引用

4 楼

函数名是我随便写的,只是举个例子,怎么用宏來确定到底是CDECL还是STDCALL啊?

5 楼

3楼的,C传向Fortran必须引用什么啊?

6 楼

可以看看你使用的編譯器的幫助,或是您說說您用的是什么編譯器,俺們也好接著說啊:)
至于C傳向F,那是必須做取地址操作(也就是&)

我来回复

您尚未登录,请登录后再回复。点此登录或注册