c++ - 我不希望控制台在我运行 c++ 程序时出现

标签 c++ windows

我想写一个 c++ 程序,编译和链接 .cpp 给出 .exe 文件。如果我双击它并执行它,控制台就会打开和关闭。我根本不希望那个控制台出现。请帮忙。

最佳答案

Windows 程序产生控制台窗口有两种方式:

  • 该程序作为控制台子系统 exe 链接,它是对 Windows 的请求,以始终提供关联的控制台窗口。

  • 程序代码本身会创建一个控制台窗口。

第一个选项,控制台子系统,是迄今为止最有可能的。

使用 MinGW g++ 编译器只需添加选项

-mwindows

使用 Visual C++ 编译器,如果您从命令行编译,请添加选项

/link /subsystem:windows /entry:mainCRTStartup

如果您是 using Visual Studio ,将子系统改为windows,在链接器选项中将入口点改为mainCRTStartup

使用微软的编译器,可以更容易地链接一个包含 WinMain 函数的模块,该函数本身是一个非标准的启动函数,并且违反 C++ 标准调用普通标准主要。这是因为使用 GUI 子系统(子系统“windows”)Microsoft 的编译器,而不是例如g++,默认情况下不识别标准的main。这只是微软的事情(大概是作为供应商锁定的事情开始的)。

关于c++ - 我不希望控制台在我运行 c++ 程序时出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618815/

相关文章:

c++ - C++网络IO,文件处理和网络故障

c# - 检测是Windows服务已被删除的时间

c++ - 一个空队列需要多少字节?

c++ - winsock2 无法绑定(bind)套接字

c++ - Eigen:接受固定大小和类型的通用矩阵表达式的函数签名

c++ - 公钥或 Diffie-Hellman key 交换算法

c++ - Objective-C block 字面量语法原理

windows - 如何将应用程序设置为以编程方式打开某种类型文件的默认程序?

mysql - 无法从 MySQL Workbench (Windows 10) 连接到 mysql 容器

java - 无法运行 jar 文件,也无法在 Cmd 中运行