Сделать не-GUI серверное приложение в Visual Studio

Я сделал проект Server Socket в Visual Studio на основе C ++ MFC. Теперь, после отладки проекта, открывается графический интерфейс сервера, затем после нажатия на CONNECT кнопка на графическом интерфейсе сервера, вы можете подключить клиентов к этому серверу и так далее.

Теперь я хочу использовать этот exe-файл сервера на другом компьютере. Так что всякий раз, когда тот компьютер запускается, тот сервер exe запускается автоматически. так что для этого мне нужно отключить кнопку подключения, чтобы после отладки серверный графический интерфейс сервера открывался и автоматически подключался. Но я не хочу, чтобы графический интерфейс сервера открывался на другом компьютере при автозапуске. Я хочу отключить этот сервер GUI.

Я получил представление о немодальном диалоге, чтобы работать над ним. Это хорошо или какой подход мне использовать?

1

Решение

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

Я пробовал решения, подобные вашему, и поэтому я могу сказать вам по собственному опыту, что вы столкнетесь с множеством проблем.

Тем не менее, возможное решение было бы скрыть окно и положить приложение в systray а также этот очень интересная дискуссия о хиндинге окон.

Кроме того, у меня есть два полезных совета в случае MFC:

  1. Никогда не просто «копируй» код, не зная, что делает MFC в фоновом режиме (Win32api).
  2. Не используйте MFC. Если вам нужны окна, обратите внимание на QT или wxWidges, чтобы ускорить инкапсуляцию win32api, а также взгляните на библиотеку boost. Это действительно стоит потраченного времени!

Удачи!

1

Другие решения

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

Другой подход заключается в использовании аргумента командной строки, который определяет, должен ли сервер запускаться с включенным или отключенным графическим интерфейсом.

3

По вопросам рекламы [email protected]