vb调用FORTRAN(编译器位Inter Visual Fortran)生成的DLL 提示找不到dll入口

我的整个过程如下:IVF:Newproject-->InterVisualFortran-->Library-->选DLL项目-->在sourcefile下添加f90代码... 我的整个过程如下:
IVF:
New project-->Inter Visual Fortran-->Library-->选DLL项目-->在source file 下添加f90代码如下:

SUBROUTINE ARRAYTEST(n,arr)
$ATTRIBUTES DLLEXPORT :: ARRAYTEST
INTEGER n,i,j
REAL(4) arr(3,3)
DO i=1,3
DO j=1,3
arr(i,j)=10.1*i+j
END DO
END DO
n=n+10
END SUBROUTINE

之后在选择release-->WIN32-->build
在release文件夹里出现如下文件:

下面是VB代码(两个文本框 一个命令按钮)

PrivateDeclare Sub ARRAYTEST Lib "C:\Users\YU\Documents\FORTRAN\exam\exam\Release\exam.dll" Alias "_ARRAYTEST@8"(X AS LONG,Y AS SINGLE)
PrivateSub Command1_Click()
Dim a AsLong
Dim ab(1To 3, 1 To 3) As Single
a=10
CallARRAYTEST(a,ab(1,1))
Text1.Text=Str(a)
Text2.Text=Str(ab(3,3))
End Sub

错误提示 找不到DLL入口点 _ARRAYTEST@8 in "文件路径"

有几个疑问:
网上查了一下说生成dll是会生成dll lib exp三个文件 我为什么没有生成exp文件?
2.我查阅文献实现上述过程的一般都是CVF编译器实现的,没有查阅到有IVF编译器实现的,但我生成的的确是WIN32的DLL,错误是否和编译器有关?
3.网上的一个版本说lib文件里会有DLL中函数的别名 即上述_ARRAYTEST@8,但是我记事本打开lib文件并没有看到,是否说明我生成的dll文件有问题?

求大家帮帮忙 谢谢大家了!!毕设要做不下去了!!
展开
 我来答
天河流纹石
2014-04-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4323万
展开全部
  1. Fortran代码里
    $ATTRIBUTES DLLEXPORT :: ARRAYTEST
    应该是
    !$DEC ATTRIBUTES DLLEXPORT :: ARRAYTEST

  2. 只需要 DLL 既可。lib,exp别管。

  3. 如果你想知道自己生成的DLL是否导出了ARRAYTEST,或者是 _ARRAYTEST@8,请使用 Dependency Walker 打开 DLL 既可看到。

更多追问追答
追问

你好 代码改过了 打开DLL后显示


说明没有导出ARRAYTEST,为什么呢?可能是哪个部分出了问题?

麻烦你啦~

追答
试试改为

!DEC$ ATTRIBUTES DLLEXPORT, ALIAS:'ARRAYTEST' :: ARRAYTEST
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式