2010-02-10 4 views
6

Мне было интересно, есть ли альтернатива MFC Microsoft, кроме WinForms в графическом интерфейсе для операционной системы Windows?GUI Framework/Lib для C++ под Windows

Я не хочу использовать библиотеки thirdparty (Borland/Qt/wxWindows). WinForms требует .NET, который является серьезной проблемой (не может установить .NET на целевых машинах), и MFC травмирует меня ...

Любая альтернатива, которая была бы близка к Qt, но Microsoft заклеймила?

Буду признателен за любые предложения!

+4

Мне любопытно, почему вы так увлечены тем, что используете брендинг MS? Большинство людей, которых я знаю, будут запрашивать точную противоположность ... – Manuel

+0

Есть ли техническая причина, по которой вы не хотите использовать библиотеки, отличные от MS, или предпочтения? –

+0

Запрос клиента на то, что все * должны * быть основаны на MS ... – CombineSlave

ответ

10

Пробег: WTL. Эта библиотека была первоначально создана Microsoft, а затем открыта с открытым исходным кодом. Напротив, с MFC многие разработчики сообщают о хорошем опыте с ним. Он создает более легкие исполняемые файлы, он лучше структурирован, чем MFC, но также не так богат.

2

Я не думаю, что они есть. Вы можете использовать чистые WinAPI, ATL, WTL (в этом случае удачи!).

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

+0

Почему - запрос клиента только для технологии/ресурсов и ресурсов MS – CombineSlave

0

Не существует. Не тратьте время на поиски. не

+0

Ссылка для загрузки WTL с серверов MS: http://www.microsoft.com/ downloads/details.aspx? FamilyID = 48cb01d7-112e-46c2-bb6e-5bb2fe20e626 & displaylang = en (BTW это был не я, который вас ниспровергал) – Manuel

+1

Я думаю, что это хороший ответ - на самом деле нет MS-библиотеки, отличной от MFC который будет «близок к Qt». WTL замечательный, но это не прикладная среда, как Qt или MFC. –

+0

Я согласен - WTL - это не приложение, а отсутствие достойных документов делает кривую обучения очень крутой. – Rob

0

Любой альтернатива, которая была бы близка к Qt, но Microsoft фирменной

Если под «близко к Qt» вы имеете в виду аналогичны конструкция Qt, то нет - нет. Я использую WTL и люблю его, но он сильно отличается от Qt.

1

Хотя я его очень люблю и широко использовал, WTL - это довольно много усилий, чтобы узнать, что документация невелика. Есть некоторые замечательные статьи «WTL for MFC Programmers» о проекте кода, которые являются абсолютным обязательным чтением.

Однако, если вы хотите что-то Qt-like от MS, то вы остаетесь только с MFC. Я боюсь. Хорошо, он длинный в зубе, но с добавлением VS2008 SP1 MFC Feature Pack вы можете создавать приложения, подобные Office 2007, с лентами. Это может быть вашим лучшим решением, если разрешено использовать только технологию MS non .NET.

+1

К сожалению, некоторые классы mfc используют .net .. * sighs * – johnathon

15

Я также предлагаю WTL. Вот список с некоторыми полезными ссылками WTL:

  • MSDN's ATL 3.0 Window Classes: An Introduction - для основ.
  • Статьи WTL от Chris Sells, Dharma Shukla и Nenad Stefanovic part1 и part2. Ненад Стефанович является отцом WTL.
  • Bjarke Viksoe's WTL projects. Бьярне суммировал многие свои небольшие проекты в целом приложении, IDE - BVRDE.
  • Код проекта WTL page. Особенно обратите внимание на статьи, написанные Michael Dunn. Рабочая станция VMware использует WTL, а Michael Dunn - для VMware.
  • Руководство разработчика WTL Clipcode (doc, pdf, source code).

WTL OpenSource приложений, которые можно изучить, чтобы увидеть различные трюки реализации:

  • компании Google Хром, исходный код here. В версии Windows используется WTL. Я не знаю, пытался ли кто-нибудь извлечь структуру WTL из Chromium.
  • Programmer's Notepad использует WTL, исходный код here.
  • InfraRecorder использует WTL, исходный код here.
+1

+1 за отличное множество информации относительно вашего предложения, OP должен отметить ответ, поскольку вопрос старый. Похоже, что ОП обескуражен и забыл, что это ТАК. – johnathon

0

Вы всегда можете напрямую обратиться к API Windows и обходить MFC.

+0

Ewwww. У нас есть одна программа, которая использует прямой API Win32, и я являюсь основным разработчиком. Я хотел бы знать, что курили дизайнеры API, и где я могу их купить. –

+0

@DavidThornley Дизайнеры api не курили ничего. Единственный способ для двух компонентов с разными ABI разговаривать друг с другом в режиме NON (есть 2) - это плоский интерфейс C (aka windows api) и COM <~ yea .., который не существовал, когда api был создано. И учитывая, что все зависит от api (MFC, ATL, и каждого отдельного приложения/структуры, о котором вы можете думать), они не слишком заинтересованы в том, чтобы нарушить мир, просто изменив его. Который, конечно, должен. – johnathon

+0

@johnathon: Я понимаю, почему им нужно будет так держать, как только сначала выйдет. Тем не менее, я видел хорошие плоские интерфейсы C раньше, и это не выглядело подходящим для меня. –

-1

Я не понимаю. Если это не Win32 или MFC или Windows.Forms, то то, что вы ищете, по определению является сторонним.

Все эти люди рекомендуют WTL рекомендовать вам скачать какой-либо инструментарий стороннего проекта и использовать его. Это нормально, если это то, что вы ищете. Но если вы это сделаете, я настоятельно рекомендую посмотреть Qt или wxWidget. Первый для наиболее полнофункционального набора, который вы можете получить, и последний для рисования собственных виджетов с использованием «более разумного» API.

Кроме того, WTL может быть загружен с сервера MS, но его далеко, далеко от технологии, поддерживаемой MS. Это неподдерживаемое дополнение.

+1

Тем не менее, WTL может быть представлен его клиентам как «технология MS». Он был первоначально разработан MS и используется в MS, а также Google, VMWare и других крупных компаниях-разработчиках программного обеспечения. –

+0

Это действительно неверно. Он был разработан Ненадом Стефановичем, который в то время был сотрудником Microsoft. Однако это никогда не было «технологией Microsoft». Люди часто предполагают, что если что-то выпущено командой MS на MS Servers, значит, это официальная технология, поддерживаемая MS. Это не так. И во многих компаниях, где MS только считает, различие является очень важным. – Shaun

+4

Я не говорю, что это поддерживается MS, но это было не просто проект Nenad, а продукт Microsoft. Он был впервые выпущен в составе SDK от Microsoft, и именно Microsoft выпустила его под лицензией с открытым исходным кодом (созданная юристами Microsoft). –

Смежные вопросы