Конвертировать приложение GUI C ++ в консольное - PullRequest
1 голос
/ 14 марта 2010

У меня есть приложение с графическим интерфейсом C ++ (Visual Studio 2008), которое необходимо преобразовать в консольное. У меня нет никакого опыта в программировании на Си. В основном я использую .NET. С чего начать?

Ответы [ 4 ]

3 голосов
/ 14 марта 2010

Преобразование графического интерфейса приложения - это серьезная операция. Модель программирования совершенно другая, приложение с графическим интерфейсом основано на событиях. Использование цикла сообщений для доставки событий, обработанных в обработчиках сообщений. И, как правило, куча элементов управления, которые заботятся о грандж-работе по получению ввода.

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

3 голосов
/ 14 марта 2010

Начните с рефакторинга. Убедитесь, что GUI отделен от бизнес-логики. Затем добавьте другой интерфейс для доступа к этой бизнес-логике: тот, который использует консоль, а не виджеты GUI.

2 голосов
/ 14 марта 2010

Проверьте ncurses и readline , чтобы помочь вам создать многофункциональное консольное приложение. Вы не можете использовать их оба одновременно , как я выяснил, поэтому попробуйте ncurses, если ваше приложение более ориентировано на вывод / отображение или реализует взаимодействия с одной клавишей (горячие клавиши), и readline, если оно более линейной ситуации пользовательского ввода.

1 голос
/ 14 марта 2010
  1. Создать новый проект с основным
  2. добавьте свои файлы
  3. здесь у вас есть консольное приложение, которое ничего не делает. Он может по-прежнему создавать окна или, если хотите, скрытые окна.
  4. Теперь ваша задача - связать интерфейс с существующим кодом.
  5. Не забудьте скачать и использовать boost :: program_options для правильного доступа к параметрам командной строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...