2010-02-10 26 views
6

Me preguntaba si existe una alternativa de Microsoft a MFC, excepto WinForms en la programación de GUI para el sistema operativo Windows.GUI Framework/Lib para C++ en Windows

No quiero utilizar bibliotecas de terceros (Borland/Qt/wxWindows). WinForms requiere .NET, que es un problema importante (no se puede instalar .NET en máquinas de destino) y MFC es traumático para mí ...

¿Alguna alternativa que sea cercana a Qt pero marca Microsoft?

¡Agradecería cualquier sugerencia!

+4

Tengo curiosidad, ¿por qué está tan interesado en usar algo que tiene la marca MS? La mayoría de las personas que conozco pedirían exactamente lo contrario ... – Manuel

+0

¿Existe alguna razón técnica por la que no desee utilizar bibliotecas que no sean MS o una preferencia? –

+0

Solicitud del cliente de que todos * deben * estar basados ​​en MS ... – CombineSlave

Respuesta

10

Probar WTL. Esta biblioteca fue creada originalmente por Microsoft y luego fue de código abierto. Por el contrario, con MFC, muchos desarrolladores informan buenas experiencias con él. Construye ejecutables más ligeros, está mejor estructurado que MFC, pero no tan rico en características.

2

No creo que haya ninguna. Puede usar WinAPI puro, ATL, WTL (en este caso ¡buena suerte!).

¿Por qué no quieres usar Qt? Es una herramienta gratuita, de código abierto y muy flexible.

+0

Por qué - solicitud del cliente de tecnología solo MS/libs y recursos – CombineSlave

0

No hay ninguno. No pierdas tu tiempo buscando.

+0

Enlace de descarga WTL de los servidores de MS: http://www.microsoft.com/ downloads/details.aspx? FamilyID = 48cb01d7-112e-46c2-bb6e-5bb2fe20e626 & displaylang = en (por cierto, no fui yo quien te votó negativamente) – Manuel

+1

Creo que esta es una buena respuesta: en realidad no hay otra biblioteca de MS que no sea MFC que sería "cerca de Qt". WTL es genial, pero no es un marco de aplicación como Qt o MFC. –

+0

Estoy de acuerdo - WTL no es un marco de aplicación y la falta de documentos decentes hace que la curva de aprendizaje sea muy pronunciada. – Rob

0

Cualquier alternativa que estar cerca de Qt pero Microsoft marca

Si por "cerca de Qt" quiere decir un diseño similar a Qt, entonces no - no lo hay. Uso WTL y me gusta, pero es muy diferente de Qt.

1

Aunque me encanta y lo he usado extensamente, WTL es un gran esfuerzo para aprender ya que la documentación no es muy buena. Hay algunos excelentes artículos 'WTL for MFC Programmers' en Code Project que son absolutamente imperdibles.

Sin embargo, si quieres algo parecido a Qt de MS, entonces te queda solo con MFC. De acuerdo, es largo en el diente pero con la adición del VS2008 SP1 MFC Feature Pack puede crear aplicaciones similares a Office 2007 con cintas. Esta podría ser su mejor solución si solo se permite la tecnología MS non-.NET.

+1

desafortunadamente, ciertas clases de mfc usan .net .. * suspiros * – johnathon

15

Yo también sugiero WTL. Aquí hay una lista con algunos enlaces WTL útiles:

  • MSDN's ATL 3.0 Window Classes: An Introduction - para los conceptos básicos.
  • WTL Artículos de Chris Sells, Dharma Shukla y Nenad Stefanovic part1 y part2. Nenad Stefanovic es el padre de WTL.
  • Bjarke Viksoe's WTL projects. Bjarne ha resumido muchos de sus pequeños proyectos en una aplicación completa, un IDE - BVRDE.
  • Code Project's WTL page. Tenga cuidado especialmente con los artículos escritos por Michael Dunn. VMware Workstation usa WTL y Michael Dunn trabaja para VMware.
  • Guía del desarrollador WTL de Clipcode (doc, pdf, source code).

WTL aplicaciones de código abierto, que se puede estudiar para ver varios trucos de ejecución:

  • cromo de Google, el código fuente here. La versión de Windows usa WTL. No sé si alguien ha intentado extraer el marco WTL de Chromium.
  • Programmer's Notepad utiliza WTL, código fuente here.
  • usa el código fuente here.
+1

+1 por la excelente cantidad de información con respecto a su sugerencia, el OP debe marcar una respuesta, ya que la pregunta es anterior. Parece que el OP se desanimó y olvidó que esto es TAN. – johnathon

0

Siempre se puede ir directamente con la API de Windows y evitar el MFC.

+0

Ewwww. Aquí tenemos un programa que usa la API Win32 recta, y yo soy el principal mantenedor. Me gustaría saber qué estaban fumando los diseñadores de la API y dónde puedo conseguir algunos. –

+0

@DavidThornley Los diseñadores de API no estaban fumando nada. La única forma de que dos componentes con diferentes ABI se comuniquen entre sí de una manera NO gestionada (hay 2) es una interfaz C plana (también conocida como windows api), y COM <~ sí ... esa no existía cuando la API era creado. Y teniendo en cuenta que todo depende de la API (MFC, ATL, y cada aplicación/framework en particular que pueda pensar) no están muy interesados ​​en romper el mundo simplemente cambiándolo. Que, por supuesto, deberían. – johnathon

+0

@johnathon: Entiendo por qué tendrían que mantenerlo así, una vez publicado por primera vez. Sin embargo, he visto buenas interfaces C planas antes, y eso no parecía calificar para mí. –

-1

No lo entiendo. Si no es Win32 o MFC o Windows.Forms, entonces lo que está buscando es por definición de terceros.

Todas estas personas que recomiendan WTL le recomiendan que descargue el kit de herramientas de un proyecto de un tercero y lo use. Está bien, si eso es lo que estás buscando. Pero si haces eso, entonces sugiero mirar a Qt o wxWidget. El primero para el conjunto con todas las funciones que puede obtener y el último para dibujar widgets nativos con una API "más cuerda".

Aparte: WTL puede descargarse desde el servidor MS, pero es muy, muy diferente de una tecnología compatible con MS. Es un complemento no compatible.

+1

Aún así, WTL se puede presentar a sus clientes como una "tecnología MS". Originalmente fue desarrollado por MS, y está siendo utilizado en MS, y también en Google, VMWare y otras grandes compañías de software. –

+0

Eso es realmente incorrecto. Fue desarrollado por Nenad Stefanovic, que era un empleado de Microsoft en ese momento. Sin embargo, nunca fue una "tecnología de Microsoft". La gente a menudo asume que si un equipo de MS libera algo en servidores MS, eso significa que es una tecnología oficial respaldada por MS. No lo es Y en muchas compañías donde solo cuenta MS, la distinción es muy importante. – Shaun

+4

No digo que sea compatible con MS, pero definitivamente no era un proyecto de tiempo libre de Nenad, sino un producto de Microsoft. Se lanzó por primera vez como parte del SDK de Microsoft, y fue Microsoft quien lo lanzó bajo una licencia de código abierto (creada por los abogados de Microsoft). –

Cuestiones relacionadas