Fortran Coder

查看: 6846|回复: 2
打印 上一主题 下一主题

[混编] vb如何向fortran传递参数(参数是函数)?

[复制链接]

8

帖子

5

主题

0

精华

入门

F 币
76 元
贡献
42 点
跳转到指定楼层
楼主
发表于 2016-1-9 08:48:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fortran生成dll
例如dll里有求积分的函数:function jf=f(x)*dx
        jf返回 f(x)从a到b的积分
f(x)在vb里编写例如:
[Visual Basic] 纯文本查看 复制代码
function f(x)
  f=sin(x)+x
end function

如何把vb里的函数传递到dll?



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2016-1-10 18:55:19 | 只看该作者
本帖最后由 li913 于 2016-1-10 18:57 编辑

给你个例子作为参考。
[Visual Basic] 纯文本查看 复制代码
Public Class Form1
    Private Declare Sub exdll Lib " d1.dll" (ByVal a As Integer, ByVal b As Integer, ByVal c As pro1)
    Delegate Sub pro1(ByRef a As Integer, ByRef b As Integer)
    Private Sub pro(ByRef a As Integer, ByRef b As Integer)
        Dim c As Integer
        c = a * b
        Debug.Print(c)
        MsgBox(c.ToString)
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim x, y As Integer
        x = 2
        y = 5
        Call exdll(x, y, AddressOf pro)
    End Sub

End Class

[Fortran] 纯文本查看 复制代码
!Fortran代码:

subroutine exdll(x,y,bkpro)

        !DEC$ ATTRIBUTES stdcall,DLLEXPORT :: exdll
        !DEC$ ATTRIBUTES alias : "exdll" :: exdll
        !DEC$ ATTRIBUTES value :: x,y
        !DEC$ ATTRIBUTES reference :: bkpro

        integer(4) x,y,a,b
        interface
                subroutine bkpro(a,b)
                  integer(4) a,b
                end subroutine
        end interface

        a=x+1
        b=y+1
        call bkpro(a,b)
end subroutine exdll

评分

参与人数 1F 币 +5 贡献 +5 收起 理由
fcode + 5 + 5 赞一个!

查看全部评分

8

帖子

5

主题

0

精华

入门

F 币
76 元
贡献
42 点
板凳
 楼主| 发表于 2016-1-11 02:29:12 | 只看该作者
li913 发表于 2016-1-10 18:55
给你个例子作为参考。[mw_shl_code=vb,true]Public Class Form1
    Private Declare Sub exdll Lib " d1.d ...

谢谢!雪中送炭
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-25 21:51

Powered by Tencent X3.4

© 2013-2024 Tencent

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