主题:[讨论]关于vb混合编程问题
avickie
[专家分:0] 发布于 2009-04-24 10:36:00
本来纯用fortran写好的程序,
一个是名称为nh的程序,算是主程序,主程序要反复调用sub程序esp
运行很正常 ,就是输入输出数据不好存
所以现在想用vb来编写输入输出界面
用fortran语言实现计算~
作了一个简单输入输出界面,关键这里如果用vb去调用fortran程序nh,nh还要调用esp
这样一个连环调用 在动态链接方面应该注意什么??能不能实现~
是不要生成两个dl文件~?
现在运行vb 提示说“子程序或函数未定义”
请哪位大侠能够指点弥经~
回复列表 (共9个回复)
沙发
avickie [专家分:0] 发布于 2009-04-24 11:05:00
咦~~~~ 没人在线吗??~~
快来说说啊~
板凳
avickie [专家分:0] 发布于 2009-04-24 11:32:00
大家都去吃饭了?~~~
等待啊等待~·
3 楼
avickie [专家分:0] 发布于 2009-04-24 14:15:00
等待砖家~~
哎~
4 楼
老大徒伤悲 [专家分:29120] 发布于 2009-04-24 14:53:00
fortran程序编译完成没有?
5 楼
avickie [专家分:0] 发布于 2009-04-24 16:05:00
没有~
因为现在的两个fortran程序改成两个 sub程序了·
刚试了一哈,bulid时出现错误
“Compiling Fortran...
F:\ESP.FOR
Linking...
Creating library Debug/NH.lib and object Debug/NH.exp
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
Debug/NH1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.”
刚去借书没借到~ 正确的程序运行步骤是什么啊~~?
多谢~~
6 楼
avickie [专家分:0] 发布于 2009-04-25 10:49:00
再次顶起~~~~
7 楼
avickie [专家分:0] 发布于 2009-04-25 11:03:00
再顶~
8 楼
老大徒伤悲 [专家分:29120] 发布于 2009-04-25 22:10:00
如果没有编译,就不能直接调用。
正常情况应该编译后调用。
9 楼
avickie [专家分:0] 发布于 2009-04-26 18:00:00
恩 我有不厌其烦的来了,,,,,这次以上错误都解决了
但有出现新问题“找不见dll入口”
我就是将fortran bulid下 生成dll 文件 然后将dll文件和vb程序放到一个文件夹里
fortran里声明为 subroutine NH1(V0,A0,R0,U,N,F,B)
!MS$ATTRIBUTES DLLEXPORT::NH1
!MS$ATTRIBUTES ALIAS:"NH1"::NH1
两个fortran sub程序都做了类似声明
vb声明如下:Private Declare Sub NH1 Lib "NH1.dll" Alias "_NH1@28" (V0, A0, R0, U, N, F, B As Single)
Private Declare Sub ESPL10 Lib "ESPL10.dll" (ByVal LG, CO, T1, CDY As Single, ByVal i As Integer)
问题何在?·
我来回复