热情软件屋

 

关于VC中调用FORTRAN的问题


编号:QA001925
建立日期: 1999年10月28日 最后修改日期:1999年10月28日
所属类别:

Ann:
    VC6.0
    Win98
    怎样在VC程序中调用Fortran程序?

回答:

    很抱歉,我对WINDOWS编程不太了解。
    关于VC中调用FORTRAN的问题,有以下两点供参考:
    一、VC调用FORTRAN的方式
    为便于编译和调试程序(尤其在VC和FORTRAN使用不同公司的编译器时),对于多语言编程的应用程序,通常以DLL来实现相互间的调用。可以把被调用的FORTRAN过程做到DLL中,并保证C与所调用的FORTRAN函数都具有相同的接口。
    调用应采用动态加载(显式链接)方式。使用动态加载的应用程序必须使用LoadLibrary()函数加载DLL并得到一个模块句柄。然后使用该句柄调用GetProcAddress()函数获得所需调用的导出函数的指针,并通过该指针调用DLL中的导出函数。在使用完毕之后,还需调用FreeLibrary()函数释放加载的DLL。
    二、要注意的问题
    为使调用过程正确,在主程序中应注明被调用过程的属性为“C”属性(extern "C")。同样,FORTRAN过程的参数也都必须以INTERFACE语句指定各变元为“C”属性(var_name [C])。
    指定子过程和变元属性非常重要,因为C与FORTRN调用子过程时的参数入栈次序正好相反,指定相同的属性可保证调用时参数正确传递。此外,由于C通过传值方式传递参数,FORTRAN则通过传址方式传递参数,对于大数据量的参数(如数组、结构变量)等,还需指定变量遗传址方式传递,以减小系统开销。

此问题由施正伟回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio