最近我正在试验我的旧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子系统应用程序吗?
答案 0 :(得分:3)
这只是在resultung exe文件中设置了一下。 Visual Basic使用Microsoft的标准链接器,它也用于C / C ++,这就是旗帜存在的原因。
所以是的,您可以使用这些设置进行编译,但我确信生成的exe不会在纯模式或Posix子系统中运行。
有关这些设置的更多信息,您可能需要查看有关PE文件格式的信息,并查看DUMPBIN和EDITBIN工具。
答案 1 :(得分:2)
VB应用程序使用Win32调用,因此即使您使用仅限控制台的应用程序,您的应用程序也不可能正常工作。
答案 2 :(得分:0)
控制台是唯一有用的替代子系统。由于Win2K和Native用于内核模式驱动程序,所以Posix甚至不存在。
如果这对你来说是新闻,我想知道你为什么要玩ProcMon?吓人。