非常简单,使用VB调用fortran的dll。 各种书都说,只要把vb数组的第一个元素地址传给fortran就好了。我使用vb。net测试了下面的程序,它工作的很好。可是用vb .60时,就有问题了。传入fortran的数组第一个元素是对的,后面的元素都丢了。 因此,fortran再返回来的数都是错的了。 即下面程序中,mya 传入 fortran后 mya(1) (也就是vb中的 mya(0))是正确的,mya(2)就是诸如2.234234e-43这样的怪东西了。奇怪的是,这样的代码在vb.net中正常的很。 有人有办法解决或者遇到类似问题没? 我试过 cvf 和 ivf11 结果都一样。 希望高手解答!
the code as:
in vb:
[Visual Basic] 纯文本查看 复制代码 01 | Private Declare Sub Dll2 Lib "d:\Dll2.dll" ( ByRef a As Single , ByRef b As Single , ByRef n As Long ) |
03 | Private Sub Command1_Click() |
12 | Call Dll2(mya(0), myb(0), n) |
in fortran:
[Fortran] 纯文本查看 复制代码 06 | !DEC$ ATTRIBUTES :: Dll2 |
07 | !DEC$ ATTRIBUTES DLLEXPORT,ALIAS: "Dll2":: Dll2 |
|