我有一个控制台应用程序(用 VB6 编写),它在我的机器上表现得很奇怪。我从命令行启动它,应该是两分钟的工作直接回到提示符 - 如果我在另一台机器上运行它,可执行文件将坐下来等待工作完成,然后再将控制权返回到提示符。如果我检查进程资源管理器,我可以看到可执行文件正在作为后台进程运行,并且除了这个奇怪的背景之外,它正在按预期运行。
关于为什么会发生这种情况的任何想法?(在 32 位 Windows XP Pro SP3 上运行。)
我有一个控制台应用程序(用 VB6 编写),它在我的机器上表现得很奇怪。我从命令行启动它,应该是两分钟的工作直接回到提示符 - 如果我在另一台机器上运行它,可执行文件将坐下来等待工作完成,然后再将控制权返回到提示符。如果我检查进程资源管理器,我可以看到可执行文件正在作为后台进程运行,并且除了这个奇怪的背景之外,它正在按预期运行。
关于为什么会发生这种情况的任何想法?(在 32 位 Windows XP Pro SP3 上运行。)
完全不清楚这是否是您编写的应用程序并具有源代码。如果是这种情况,您需要进入并开始调试。至少,使用OutputDebugString将有关正在发生的事情的信息发送给任意数量的潜在观众。更进一步,考虑使用我编写的控制台模块重新连接应用程序,并使用vbAdvance重新编译。这种组合将使您能够在其中调试 VB6 IDE 的全部功能。不再猜测发生了什么。
再说一次,如果它不是你的应用程序,我不确定 VB6 与它有什么关系,并祝你好运,试图弄清楚发生了什么。
在我看来,好像该应用程序没有被识别为您的一台机器上的控制台应用程序。控制台应用程序并未在 VB6 中得到正式支持,尽管有一些众所周知的创建它们的技巧(尤其是免费的插件vbAdvance)。可能您的控制台应用程序有点不可靠?如果 Windows 认为您的应用程序是 GUI 而不是控制台应用程序,它不会等待它完成。
作为一种实用的解决方法:尝试使用start /wait启动,而不仅仅是使用 exename。这会强制命令提示符等待程序完成,无论是 GUI 应用程序还是控制台应用程序。
听起来好像正在发生错误,正在被应用程序“吞下”。你有源代码吗?
VB6 应用程序中的错误通常是由于某些 COM 组件未安装和/或注册造成的。
下载SysInternals Process Monitor,这将显示对 ProgID 的访问失败(卸载/未注册的 COM 组件)。
查看:进程监视器 - 动手实验室和示例。
你检查权限了吗?应用程序是否访问任何基于网络的资源?