Как записать современное программное обеспечение Windows в C++?

Я очень интересуюсь тем, как современное программное обеспечение Windows записано в C++ в наше время. Я спросил своего друга, который работал над программным обеспечением Windows, и он сказал, что последними вещами, с которыми он работал, был MFC и затем WTL. Он сказал, что MFC больше является ничем современным, но WTL все еще используется, но он не знал намного больше. Он также сказал, что WTL не был настолько современен и прежде который он запрограммировал в чистом Windows API.

Как каждый пишет программное обеспечение для Windows Vista или Windows 7? Вы все еще используете WTL? Что относительно MFC и чистого Windows API? Или есть ли теперь другие библиотеки?

Я не знаю много об этом, но имею C#, или другие языки.NET заменили C++ в записи современного программного обеспечения Windows?

13
задан Jeffrey Bosboom 13 December 2015 в 07:38
поделиться

4 ответа

Из того, что я видел за последние несколько лет:

  • WTL находится на пути к спасению. Заброшенный Microsoft, подхваченный фанатами, и было несколько очень преданных последователей. Очень чисто, но кривая обучения крутая, а количество фанатов сокращается. Группа Yahoo не очень активна. Я не могу это рекомендовать.

  • MFC получил новую жизнь, когда MSFT выпустила пакет функций. Довольно обширный и немного не похожий на MFC, он имеет сильную поддержку скиннинга, стыковки макетов и лент. Я думал, что он будет очень популярен, но никогда не видел, чтобы на него прыгало много разработчиков. Вопросы на форуме MSDN были редкими. Если у вас есть существующая кодовая база MFC, обязательно взгляните. Еще одно обновление MFC для VS2010 с добавленными функциями Win7, оно остается основным UI-решением компании.

  • wxWidgets все еще существует. Нет личного опыта, но Господь, несколько практикующих, от которых я слышал, устраивают бурю. Настоящая горькая штука тоже.

  • Qt существует довольно давно, но значительно расширился, особенно в прошлом году.Кто бы ни использовал это , действительно это нравится. Он также выходит за рамки библиотеки классов пользовательского интерфейса, их пользователи активно ищут решения общих задач программирования, которые начинаются с буквы Q. Это мощный вотум доверия.

Но если вы работаете в стеке Microsoft, ни одна из этих библиотек классов не является тем местом, где находится реальная разработка пользовательского интерфейса. WPF - слон в комнате, его возможности на сотню миль превосходят перечисленные выше. Его способность преодолевать границы устройств и парадигм очень сильна, писать код, работающий как на настольном компьютере, так и в веб-браузере или телефоне, сложно. Но C ++ не является частью этого.

14
ответ дан 1 December 2019 в 17:47
поделиться

WTL, Qt, wxWidgets используются довольно часто.

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

  • Написание окон на чистом WinAPI - это очень старая школа, но иногда это может быть интересно.

  • Подход C # к созданию окон даже более быстрый по сравнению с предыдущими вариантами, но немного менее гибкий.

12
ответ дан 1 December 2019 в 17:47
поделиться

Взгляните на Qt - он может вам понравиться. Если, конечно, вы не предпочитаете какую-то непереносимую версию. Но даже если вы не планируете строить на OS X, Linux, телефонах, ... структура Qt хорошо написана, хорошо документирована и просто работает. SDK теперь также включает красивую IDE (Qt Creator).

9
ответ дан 1 December 2019 в 17:47
поделиться

В .NET (C#, VB.NET, ...) передовым направлением программирования графических интерфейсов в настоящее время является WPF (заменяющий WinForms). Компилируемый код в .NET - это фактически CIL, который компилируется в нативный код во время выполнения с помощью JIT. Преимуществом этого является то, что вам не нужно заботиться о 64- или 32-битных целевых системах.

В C++, Qt кажется хорошим решением, так как он чисто спроектирован и предоставляет большое количество сервисов. Что мне не нравится в Qt, так это его компиляция, она настолько медленная, есть компилятор moc, компилятор, затем компоновка, это занимает целую вечность по сравнению с C#/.NET, чтобы получить исполняемый файл. С другой стороны, вы можете встретить его даже во встроенных системах, что делает его интересным в таких случаях.

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

2
ответ дан 1 December 2019 в 17:47
поделиться
Другие вопросы по тегам:

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