2010-12-14 12 views
0

exeのヘッダーの "DOS EXE"フラグがfalseに設定されるように、コンパイルしたいVS2010 C++ exeプロジェクトがあります。これは、(うまくいけば)実行ファイルが実行されるときにCONHOST.exeの作成を避けるためです。 exeにはUIがありません。"DOS EXE"ヘッダーフラグ== falseを指定してC++プロジェクトをコンパイルするにはどうすればよいですか?

現時点では、起動時にCONHOST.exeプロセスを取り除くために::FreeConsoleを呼び出していますが、最初にCONHOST.exeが作成されていない場合は、このプロセスを優先します。

どうすればいいですか?

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) 
{ 
    int argc; 
    LPWSTR* argv = CommandLineToArgvW(pCmdLine, &argc); 
    _tmain(argc, argv); 
    LocalFree(argv); 
} 

答えて

2

あなたからリンカオプションでサブシステムの値を変更しようとすることができ、次のように選択した答えにさらに

は、私は、既存のメインにを通じて呼び出すWinMain関数を追加することによって、自分のコードを「まで固定します」 WINDOWSへのコンソール。これにより、コンパイラーはバイナリー内にコンソール対応コードを生成できなくなります。 main()の代わりにWinMain()関数を使用する必要があることに注意してください。

関連する問題