Fortran Coder

C# Fortran混合开发:在C#中调用Fortran的.dll显示异常

查看数: 8595 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-29 22:14

正文摘要:

求救大佬 https://www.cnblogs.com/potential/archive/2012/11/05/2755899.html依据这篇博客进行的操作,显示异常为 [url=]图片[/url] Fortran编译器用的Intel Parallel Studio XE 2019,项目为.Net FrameWork 4框架 ...

回复

fcode 发表于 2020-12-30 08:32:34
DOUBLE PRECISION FUNCTION ADD(A,B)
!DEC$ ATTRIBUTES DLLEXPORT::ADD
!DEC$ ATTRIBUTES STDCALL,ALIAS:'Add'::ADD
    DOUBLE PRECISION:: A,B
    ADD=A+B
END

改为
[Fortran] 纯文本查看 复制代码
DOUBLE PRECISION FUNCTION ADD(A,B)
!DEC$ ATTRIBUTES DLLEXPORT::ADD
!DEC$ ATTRIBUTES STDCALL,ALIAS:'Add'::ADD
    DOUBLE PRECISION:: A,B
    ADD=A+B
END

FUNCTION SORTANDFINDMAX(ARRAY,LENGTH)
!DEC$ ATTRIBUTES DLLEXPORT::SORTANDFINDMAX
!DEC$ ATTRIBUTES STDCALL,ALIAS:'Sortandfindmax'::SORTANDFINDMAX
DOUBLE PRECISION ::ARRAY(LENGTH)
INTEGER::I,J
DOUBLE PRECISION::SORTANDFINDMAX,TEMP
SORTANDFINDMAX=ARRAY(1)
DO I=1,LENGTH-1
    DO J=I+1,LENGTH
        IF(ARRAY(I).GT.ARRAY(J)) THEN
            TEMP=ARRAY(I)
            ARRAY(I)=ARRAY(J)
            ARRAY(J)=TEMP
            SORTANDFINDMAX=ARRAY(J)
            END IF
    END DO
    END DO
END

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

GMT+8, 2024-5-3 00:17

Powered by Tencent X3.4

© 2013-2024 Tencent

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