1

使用下面的代码,控制台被隐藏但它出现了大约 1 秒钟。

如何完全隐藏控制台?

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>

using namespace std;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int cmdShow){

HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );

MessageBox(NULL, TEXT("Hello!"), TEXT("yuhuuu"), 0);
return 0;
}
4

1 回答 1

1

您的编译器设置有些奇怪。(你没有指定你的编译器,所以我假设是 MSVC)

您示例中的WinMain入口点函数由 GUI 应用程序(链接器开关/SUBSYSTEM :WINDOWS)使用,除非您调用 AllocConsole,否则这些应用程序不会获得控制台。

如果您使用 /SUBSYSTEM:CONSOLE 链接,则 Windows 将在执行您的代码之前为该进程创建一个控制台,但这些应用程序的正常入口点是普通的旧main函数。

您是否使用 /ENTRY 开关强制进入点?无论哪种方式,请确保 /SUBSYSTEM 开关和入口点函数定义兼容并匹配您要创建的应用程序类型(GUI 或控制台)

于 2012-04-18T09:18:55.730 回答