2

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

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

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

4

3 回答 3

3

这只是在生成的 exe 文件中设置了一点。Visual Basic 使用 Microsoft 的标准链接器,该链接器也用于 C/C++,这就是标志存在的原因。

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

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

于 2013-02-11T21:34:47.910 回答
2

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

于 2013-02-12T00:39:30.477 回答
0

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

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

于 2013-02-11T21:54:23.260 回答