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毫秒