Думаю, я должен поделиться своим опытом со всеми вами. Я вижу, что в некоторых ситуациях 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-адрес, но для меня есть все эти три - это то, что я нахожу лучше всего для их наблюдения.
Надеюсь, это поможет некоторым парням.
Похоже, ваша конфигурация линкера неверна. Щелкните правой кнопкой мыши проект, свойства, линкер, система, настройка подсистемы. Убедитесь, что «Windows» выбран, а не «консоль».
И, измените основные () до WinMain ().
я использую этот метод, и он работал
HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);
Я бы предложил проверить наличие следующей строки в вашем файле .pro:
CONFIG += console
Если вы можете его найти, удалите его! Это должно исправить вашу проблему!
Надеюсь, это поможет!
Возможно, лучшим вариантом будет не просто удалить (как предложил Энди М), а отредактировать *.pro файл, добавив что-то вроде
CONFIG(debug, debug|release) {
CONFIG *= console
}
else {
CONFIG -= console
}
В отладке можно увидеть консольное окно, но не в релизах. Мне это нравится. =)
Следующее решение;)
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 (argc, argv);
// ваш код*
}
по
int WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *, int nShowCmd)
{
int argc = 0;
Приложение QApplication (argc, 0);
}
Он отлично работает как для платформ Win32, так и для x64.