64位WIN7上Inter Visual Fortran生成的DLL文件供VB调用的问题!急求!
我是64位WIN7上装了InterVisualFortran,新建的DLL项目,在f90文件下输入代码,生成的DLL文件是32位还是64位?能被VB调用吗?一个超级简单的...
我是64位WIN7上装了Inter Visual Fortran,新建的DLL项目,在f90文件下输入代码,生成的DLL文件是32位还是64位?能被VB调用吗?
一个超级简单的FORTRAN代码(64位机子 IVF环境)如下:
subroutine test(a,b,c)
!dec$ attributes dllexport :: test
!dec$ attributes alias: "test" :: test
!dec$ attributes reference :: a,b,c
real(4) a,b,c
c=a+b
return
end subroutine
生成DLL文件在DEBUG目录下
用VB调用时声明:
Public Declare Sub test Lib
"F:YU/TEST/debug/test.dll" (ByRef a As Single, ByRef b As
Single, ByRef c As Single)
调用时提示调用DLL约定错误
自己在网上查了一下发现VB调用IVF64位DLL都有这个问题。求问这是DLL位数问题吗?是不是换到32位机子就能解决?还是所有IVF生成的DLL都不能给VB调用?必须用CVF才行?
做毕设时遇到了这个问题!求助了解情况的大神们解答!谢谢大家了! 展开
一个超级简单的FORTRAN代码(64位机子 IVF环境)如下:
subroutine test(a,b,c)
!dec$ attributes dllexport :: test
!dec$ attributes alias: "test" :: test
!dec$ attributes reference :: a,b,c
real(4) a,b,c
c=a+b
return
end subroutine
生成DLL文件在DEBUG目录下
用VB调用时声明:
Public Declare Sub test Lib
"F:YU/TEST/debug/test.dll" (ByRef a As Single, ByRef b As
Single, ByRef c As Single)
调用时提示调用DLL约定错误
自己在网上查了一下发现VB调用IVF64位DLL都有这个问题。求问这是DLL位数问题吗?是不是换到32位机子就能解决?还是所有IVF生成的DLL都不能给VB调用?必须用CVF才行?
做毕设时遇到了这个问题!求助了解情况的大神们解答!谢谢大家了! 展开
1个回答
展开全部
你编译后的DLL是32位,还是64位,与你的win7位数无关。而与你的IVF的位数有关。
你可以安装32位的IVF,也可以安装64位的IVF。甚至可以都安装,在设置中选择使用哪个。
如果你的DLL是64位的,则不能被32位的VB调用。
IVF出来的DLL是可以被VB使用的,不是必须用CVF才行。
更多追问追答
追问
你好 请问我怎么才能知道我安装的IVF的位数呢 不是在官网上下载的 下载的网站上也没有标注
追答
在开始菜单里面找 Intel Fortran,展开若干个文件夹,里面就有写。
IA-32 ,EM64 等,自己就能看见。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询