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はコードが実行される前にプロセスのコンソールを作成しますが、これらのアプリケーションの通常のエントリポイントは単純な古いメイン関数です。

/ ENTRYスイッチでエントリポイントを強制していますか?いずれの場合も、/ SUBSYSTEMスイッチとエントリポイント関数の定義に互換性があり、作成するアプリケーションのタイプ(GUIまたはコンソール)と一致していることを確認してください。

于 2012-04-18T09:18:55.730 に答える