vb调用fortran(字符串传递)

zjf0201 2010-10-28 10:42:21
如题,我想用vb调用Fortran动态链接库,字符串传递老出错。
下面是fortran 子程序
subroutine fortstr(str1,str2)
! ms$attributes stdcall, reference, dllexport::fortstr
character(40)::str1,str2
str1="你好"
str2="爸爸"
end subroutine

vb子程序是用一个按钮显示:

Private Declare Sub fortstr Lib "fortstr.dll" (ByVal str1 As String, ByVal str2 As String)

Private Sub Command1_Click()
Sub usefortstr()

Dim str1 As String * 40, str2 As String * 40
Call fortstr(str1, str2)
Debug.Print str1, str2
End Sub
End Sub

但是执行老出现错误 缺少:end sub;
不知道为什么?请高手指点,或帮忙把这个程序调通。谢谢
...全文
275 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjf0201 2010-10-30
  • 打赏
  • 举报
回复
是 fortstr,fortstr.dll是用Fortran程序生成的动态链接库文件名,不知道是哪里的问,
是不是字符串传递出现了问题?好像不是,怎么找不到入口是什么意思?帮帮忙
chinaboyzyq 2010-10-30
  • 打赏
  • 举报
回复
Fortran?fortstr?
zjf0201 2010-10-30
  • 打赏
  • 举报
回复
”是否已经注册dll“,dll这个还需要注册码?不太明白,能不能具体点?谢谢!
chinaboyzyq 2010-10-30
  • 打赏
  • 举报
回复
是否已经注册dll
zjf0201 2010-10-29
  • 打赏
  • 举报
回复
用三楼的办法,但是出现了错误是:
实时错误‘453’
找不到dll文件的入口fortstr in fortstr.dll
请问这是为什么?谢谢
chinaboyzyq 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 zjf0201 的回复:]
Private Declare Sub fortstr Lib "fortstr.dll" (ByVal str1 As String, ByVal str2 As String)

Private Sub Command1_Click()
Sub usefortstr()

Dim str1 As String * 40, str2 As String * 40
Call fortstr(str1, str2)
Debug.Print str1, str2
End Sub
End Sub
[/Quote]
过程不允许嵌套。
king06 2010-10-29
  • 打赏
  • 举报
回复
Private Declare Sub fortstr Lib "fortstr.dll" (ByVal str1 As String, ByVal str2 As String)

Private Sub Command1_Click()
usefortstr
End Sub

Sub usefortstr()
Dim str1 As String * 40, str2 As String * 40
Call fortstr(str1, str2)
Debug.Print str1, str2
End Sub
Qchenping 2010-10-29
  • 打赏
  • 举报
回复
Sub usefortstr()应该新建对象调用
king06 2010-10-29
  • 打赏
  • 举报
回复
不是缺少,是多了一个End Sub

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧