VB 版 (精华区)
发信人: zxfsnow (最近睡眠太少), 信区: VB
标 题: 关于调用外部可执行程序的问题
发信站: 哈工大紫丁香 (2000年06月07日18:21:11 星期三), 转信
发信人: windoe (亲亲我的宝贝), 信区: VisualBasic
标 题: 关于调用外部可执行程序的问题
发信站: BBS 水木清华站 (Sun May 28 20:35:43 2000)
在VB6.0中用shell调用一个可执行程序*.exe(dos下的程序)并用它生成一个数据文件
,紧接着就调用这个数据文件。
结果是在调试程序过程(run or run with compile)中,可执行程序可以执行,但数据
文件不能生成,但是直接在windows下点击执行,可以。
后来加入了些代码,将整个project编译成可执行程序,这部分就能够产生数据文件了。
难道vb的调试和生成可执行程序在工作过程中有什么不同吗?
我也用api函数调用过,同样的问题。
起初我还以为是多线程的问题,编了一个函数等待其完成,同样的结果。
代码如下:
Private Sub cmdCalForce_Click()
On Error GoTo ErrorGo
Dim Exec As Long
Call PreCalForce '在当前目录下生成calforce.inp
If Dir$(App.Path & ".\calforce.inp") = "" Then
MsgBox "缺少文件:calforce.inp"
Exit Sub
End If
If Dir$(App.Path & ".\calforce.exe") = "" Then
MsgBox "缺少文件:calforce.exe" '这就是需要调用的可执行程序
Exit Sub
End If
' If Shell(fname, vbMaximizedFocus) = 0 Then
' MsgBox "执行错误"
' End If
' 调用calforce.exe,它应该在当前目录下生成calforce.out
Exec = WinExec(App.Path & ".\calforce.exe", SW_MAX)
' 这是我用一个有进度条的窗口使程序等待,还是有效果的,
' 如果没有任何情况下都是找不到calforce.out
Load frmWaiting
frmWaiting.Show vbModal
If Dir$(App.Path & ".\calforce.out") = "" Then
MsgBox "缺少文件:calforce.out"
'通常都是在这里出问题,退出sub
Exit Sub
End If
Call PreCalForce '使用calforce.out
Exit Sub
ErrorGo:
If Err.Number = 53 Then
MsgBox "缺少文件!"
Else
MsgBox "未知错误!"
End If
Exit Sub
End Sub
请诸位高手解答一下。谢谢!
尽快尽快,我毕设就是在这儿卡住好几天了,快疯了!
--
以科计为本,以产业报国!
超越自我,飞跃无限!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.252]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.310毫秒