Подтвердить что ты не робот

Скрыть консоль приложения Windows

У меня есть приложение Qt, и когда я запускаю это приложение, за ним открывается консоль. В разработке хорошо, потому что я вижу отладочные выходы на консоли, но когда я хочу предоставить этот исполняемый файл клиенту, не должно быть консольного окна. как его скрыть?

(Я использую Visual Studio 2008)

4b9b3361

Ответ 1

Похоже, ваша конфигурация компоновщика неверна. Щелкните правой кнопкой мыши настройки проекта, свойств, компоновщика, системы, подсистемы. Убедитесь, что выбрана "Windows", а не "Консоль".

И, измените main() на WinMain().

Ответ 2

В настройках компоновщика проекта установите

/SUBSYSTEM:windows
/ENTRY:mainCRTStartup

Или используйте следующую #pragma в исходном файле с int main(...)

#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")

Ответ 3

Вы можете избавиться от консоли, позвонив:

FreeConsole();

Ответ 4

Я использую этот метод, и он работал

HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);

Ответ 5

Следующее решение;)

Env: WixXP x64, msvs 2008, Qt v4.5.3

  • Установить настройки проектов/Свойства конфигурации /Linker/System/SubSystem = Windows (/SUBSYSTEM: WINDOWS)

    Но для x64 существует ошибка компоновщика: LNK2019: неразрешенный внешний символ _WinMain, указанный в функции _WinMainCRTStartup " Чтобы избежать этого

  • Замените следующий код:

    int main(int argc, char *argv[])
    {
         QApplication app(argc, argv);
         // your code*
    }
    

    по

    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char*, int nShowCmd)
    {
        int argc = 0;
        QApplication app( argc, 0 );
     }
    

Он отлично подходит для обеих платформ Win32 и x64.

Ответ 6

Может быть лучшим вариантом будет не просто удалить (как предположил Энди М), а отредактировать файл *.pro, добавив что-то вроде

CONFIG(debug, debug|release) {
    CONFIG *= console
} 
else {
    CONFIG -= console
}

В отладке вы можете видеть окно консоли, но не в выпуске. Мне это нравится. =)

Ответ 7

Я бы предложил проверить наличие следующей строки в вашем файле .PRO:

CONFIG += console

Если вы можете найти его, удалите его! Он должен исправить вашу проблему!

Надеюсь, что это поможет!

Ответ 8

Если вы используете Properties- > Linker- > System- > SubSystem | Окна

И получите ошибку компоновщика.

Вы можете посмотреть Linker- > Advanced- > Entry Point

и установите значение для имени вашей "основной" функции.

Это ваша точка входа становится основной, если ваша основная функция является "основной".

Ответ 9

Для тех, кто непосредственно редактирует .vcxproj, вы хотите добавить SubSystem со значением Windows к вашему Link ItemDefinitionGroup следующим образом:

<ItemDefinitionGroup>
  <Link>
    <SubSystem>Windows</SubSystem>
  </Link>
</ItemDefinitionGroup>

Ответ 10

Установите флажок Projects --> Run и снимите флажок Run in terminal

Ответ 11

Это сработало для меня:

CONFIG(debug, debug|release) {
    CONFIG *= console
} 
else {
    CONFIG -= console
}

Мне нужно было запустить exe для мониторинга файла с помощью QFileSystemWatcher, поэтому я использовал это:

CONFIG -= console