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

Думаю, я должен поделиться своим опытом со всеми вами. Я вижу, что в некоторых ситуациях REMOTE_ADDR НЕ доставит вам то, что вы ищете. Например, если у вас есть балансировщик нагрузки за сценой, и если вы пытаетесь получить IP-адрес клиента, у вас будут проблемы. Я проверил его с помощью своего программного обеспечения для маскировки IP-адресов, а также проверил, что мои коллеги находятся на разных континентах. Итак, вот мое решение.

Когда я хочу узнать IP-адрес клиента, я пытаюсь выбрать все возможные доказательства, чтобы определить, уникальны ли они:

Здесь я нашел другой sever-var, который может помочь вам всем, если вы хотите получить точный IP-адрес на стороне клиента. поэтому я использую: HTTP_X_CLUSTER_CLIENT_IP

HTTP_X_CLUSTER_CLIENT_IP всегда получает точный IP-адрес клиента. В любом случае, если он не дает вам значение, вы должны искать HTTP_X_FORWARDED_FOR, поскольку он является вторым лучшим кандидатом для получения вашего IP-адреса клиента, а затем REMOTE_ADDR var, который может или не может вернуть вам IP-адрес, но для меня есть все эти три - это то, что я нахожу лучше всего для их наблюдения.

Надеюсь, это поможет некоторым парням.

48
задан HaskellElephant 24 October 2012 в 22:30
поделиться

5 ответов

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

И, измените основные () до WinMain ().

50
ответ дан 7 November 2019 в 11:13
поделиться

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

HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);
12
ответ дан 7 November 2019 в 11:13
поделиться

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

CONFIG += console

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

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

4
ответ дан 7 November 2019 в 11:13
поделиться

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

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

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

5
ответ дан 7 November 2019 в 11:13
поделиться

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

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

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

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

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

     int main (int argc, char * argv [])
    {
    Приложение QApplication (argc, argv);
     // ваш код*
    }
    

    по

     int WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *, int nShowCmd)
    {
    int argc = 0;
    Приложение QApplication (argc, 0);
     }
    

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

8
ответ дан 7 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: