在程序运行时隐藏控制台的独立于平台的方法
Platform independant ways of hiding console when program runs
我正在寻找一种在我的程序中隐藏控制台(在windows中)的方法,并且我找到了以下代码:
#if defined (__WIN32__)
#include <windows.h>
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW_HIDE);
#endif
然而,代码块一直给我error: expected constructor, destructor, or type conversion before '(' token
。我做错了什么?
在MAC和linux中隐藏控制台的代码是什么?我不经常使用mac或linux,但我想让我的程序平台独立。是否存在适用于所有平台的代码?控制台甚至显示在MAC和Linux编译时?
一般来说,控制台应用程序不应该乱动它们的窗口。如果你需要更高级的东西(显示/隐藏你的窗口,决定它的大小,…),你可能应该切换到GUI应用程序。即使你不想要任何窗口,这也是正确的:创建一个GUI应用程序,不要创建窗口。
在Mac和Linux上,当你启动可执行文件时,默认不显示控制台(GUI和控制台可执行文件之间没有区别);如果您在终端中启动它,应用程序对它没有太多的控制权(除非它使用转义码,但它们是用来控制文本格式/定位的)。您可以使用一些启发式方法来猜测所使用的终端仿真器,并告诉它隐藏,但它很难看,很麻烦,并且再次违背了控制台应用程序的目的。
就你的代码片段而言,你不能把#include
放在函数体中:你应该把它分成两部分:
在文件的顶部:
#ifdef __WIN32__
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
函数体内部:
#ifdef __WIN32__
ShowWindow(GetConsoleWindow(), SW_HIDE);
#endif
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- 正在查找文档以获得PS4平台的C++中的设备信息
- C++为构建时间获取QDateTime的可靠方法
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 将vector<vector<double>>从x86平台中创建的一个进程发送到x64中构建的另一个进程的最快方法是什么
- 请告诉我在巴泽尔拥有多平台工作空间的更好方法
- 在C++中组织特定于平台的代码的推荐方法是什么?
- 有没有一种方法可以在一个平台上编写c++程序,而不需要为不同的操作系统重新编写
- 在c++中获得当前实例(例如pid)唯一值的独立于平台的方法是什么?
- 确定是否存在动态库的多平台方法
- 在Visual Studio 2010中有快速切换解决方案平台的方法吗?
- 在程序运行时隐藏控制台的独立于平台的方法