将VB6程序编译为Native或POSIX应用程序?

时间:2013-02-11 18:28:40

标签: vb6 compilation linker subsystem

最近我正在试验我的旧VB6,发现有一件奇怪的事情 使用ProcMon我发现在编译时,VB6使用如下参数运行Link.exe:
LINK "D:\Folder\Form1.OBJ" "D:\Folder\Project1.OBJ"... /SUBSYSTEM:WINDOWS,4.0 ... 我在cmd中写了Link.exe /?并找到了

link.exe /?
usage: LINK [options] [files] [@commandfile]      
    options:      
    ...    
    /SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}

默认情况下,VB6使用参数/ SUBSYSTEM:WINDOWS进行编译 但我可以将我的VB6代码编译为Native或POSIX子系统应用程序吗?

3 个答案:

答案 0 :(得分:3)

这只是在resultung exe文件中设置了一下。 Visual Basic使用Microsoft的标准链接器,它也用于C / C ++,这就是旗帜存在的原因。

所以是的,您可以使用这些设置进行编译,但我确信生成的exe不会在纯模式或Posix子系统中运行。

有关这些设置的更多信息,您可能需要查看有关PE文件格式的信息,并查看DUMPBIN和EDITBIN工具。

答案 1 :(得分:2)

VB应用程序使用Win32调用,因此即使您使用仅限控制台的应用程序,您的应用程序也不可能正常工作。

答案 2 :(得分:0)

控制台是唯一有用的替代子系统。由于Win2K和Native用于内核模式驱动程序,所以Posix甚至不存在。

如果这对你来说是新闻,我想知道你为什么要玩ProcMon?吓人。