如何构建一个VB6控制台应用程序

8

我通过谷歌搜索尝试回答这个问题,但即使在那之后,我对某些事情仍不太清楚。是否可以从VB6创建控制台应用程序?

我有一个VB6应用程序,它没有弹出窗口。我一直认为它是一个控制台应用程序。然而,我想能够在其中使用Windows API SetConsoleCtrlHandler函数。我相信在C++/MFC应用程序中,您必须设置链接器开关以创建控制台应用程序。我的一个同事告诉我,VB6不会创建真正的控制台应用程序,因此这将无法工作。那么,是否可以从VB6创建Windows将识别为控制台应用程序的控制台应用程序?

平台:Windows XP SP2

开发平台:VB6

3个回答

9

是的。也可以创建完全无头应用程序(我以前做过几次)。

这个链接提供了一个带有代码片段的示例。


@NXC,谢谢 - 这正是医生所开的处方。 - Onorio Catenacci
一个不错的链接,但是我无法让它运行(即使使用Scripting.FileSystemObject方法),除非先调用Windows API AllocConsole,然后再调用FreeConsole。也许这只是某些Windows版本的问题。有关详细信息,请参见此处:http://internettrash.com/users/fdb/cons.htm。 - Gavin
@Gavin - 这很可能是与较新版本的Windows有关的问题。如果我没记错的话,我上次编写无界面的VB6应用程序是大约10年前,目标平台是NT4! - ConcernedOfTunbridgeWells

3
你可以使用卡尔·E·彼得森的代码,位于http://vb.mvps.org/samples/Console/,创建一个非常全面的控制台应用程序。 通过重新链接已编译的VB6 EXE,可以更简单地创建它。 卡尔在同一网页中详细介绍了这一点。 向下滚动到那里的LinkConsole.vbs。

是的,我想那就是我在那个时候所做的:你真的必须告诉 .exe 它是一个控制台应用程序 - 这必须在后编译步骤中完成(make 是你的朋友吗?)。 - Daren Thomas
截至3月31日,Karl Peterson的代码也可以通过免费的插件vbAdvance(具有许多其他强大功能)进行包装。http://vb.mvps.org/tools/vbAdvance/ - MarkJ
Karl一如既往地做得非常出色。然而,对于大多数控制台程序来说,这是一个巨大的负担(开销)。你很少需要他提供的大部分内容。好消息是你有源代码,所以可以根据需要将其精简。 - Bob

0

看看这个文章

或者你可以将VB6应用程序重写为VBScript程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接