1

如何隐藏控制台窗口,编译器很小 C

//Tiny C -> http://download.savannah.gnu.org/releases/tinycc/
#include <stdlib.h>
int main()
{
    system("Taskkill /IM test.exe /F");
    return 0;
}
4

1 回答 1

1

当操作系统启动应用程序时,它会在名为IMAGE_OPTIONAL_HEADER的 EXE 文件中查找特殊的描述表。该结构包含所谓Subsystem的字段。何时- 操作系统SubsystemIMAGE_SUBSYSTEM_WINDOWS_CUI控制台窗口附加到此进程。否则,将不会添加控制台窗口。

编译器/链接器通常具有设置输出应用程序子系统类型的参数,例如,当您使用 Microsoft Linker 链接代码时,您可以添加/SUBSYSTEM:WINDOWS参数,并且在启动应用程序时您不会看到控制台窗口。

另一种方式:编译器可能会在您的代码中看到函数时自动决定将 EXE 子系统设置为 Console ,或者在您有作为入口点main时设置 GUI 子系统。WinMain

关于 TCC:我-Wl,-subsystem=gui在 TCC 文档中看到了选项,但似乎它不起作用。所以尝试发送错误报告或使用更成熟的编译器/链接器。

于 2014-11-27T22:57:33.510 回答