2016-07-04 53 views
0

我再次被迫更新一个古老的vb6程序,原因是我想让自己陷入流量。如果我从VB6程序调用Shell Foo.exe,并且Foo.exe熄灭,我的VB6程序也会熄灭吗?

我已经写了一个纯粹的骨头.NET应用程序,在某些情况下,它将被VB6程序封装。因为.Net程序运行在.Net 4.5.2,而我的VB6 IDE是在Windows XP系统上(请杀了我),我完全期望它(.Net应用程序)以光荣的方式崩溃,当VB6程序调用它在开发环境中运行。

不幸的没有发生 - 正在发生的事情是我得到一个运行时错误5.

这是呼叫VB6应该做 -

Shell """" & App.Path & "\Foo.exe""" 

就是这样。有问题的.Net程序是一个看不见的应用程序(没有用户界面,也没有控制台,这就是它应该是这样的),而VB6程序有一个图形用户界面,使我想把休闲酗酒作为一种爱好。

我能想到的唯一的事情就是所谓的程序燃烧使VB6适合 - 这个假设是否正确?如果不是,那还有什么问题?

+0

VB6?不是.NET?似乎真的很晚,在游戏中学习VB6 ... –

+0

@奥斯汀法国我知道。净。当我被迫支持这些神可怕的传统应用程序时,我对VB6足够了解,不会割裂我的手腕和喉咙。我不想学习VB6。我只是根据客户的规格更新这个愚蠢的程序。 – Will

+0

如果.net程序可以独立运行,那应该不是问题。 .Net程序做什么? – dbmitch

回答

1

VB6 Shell如果无法启动指定的程序,该命令将引发运行时错误5。如果该运行时错误未处理,那么程序将停止,并出现该错误的标准VB6错误消息。正如评论中所述,OP的.NET EXE无法在Windows XP上启动(也许它是为x64构建的?),所以他们得到这个错误。

2

.Net 4.5+在XP上不受支持,所以我不希望你的应用程序能够正常工作。事实上,我不确定你是如何安装4.5的。当我尝试在操作系统检查失败。结果我必须瞄准4.0。

VB6不会因为你的.Net应用程序而崩溃,因为它不是同一个进程。它会看到一个错误,但你只是处理它,然后继续前进。

相关问题