2009-01-12 8 views
15

He decidido que quiero obtener más en el desarrollo de código nativo con C++. Estoy tratando de decidir si me sería más útil usar CodeGear C++ Builder 2009 o Visual Studio 2008. Actualmente uso Delphi 2007, así que estoy muy cómodo con el IDE de C++ Builder (es lo mismo que Delphi), así como con el VCL y RTL.C++ Builder o Visual Studio para el desarrollo nativo de C++?

Nunca he sido un gran admirador de MFC (desde la primera vez que jugaba con él en VS 6.0 días), pero no lo he analizado de cerca desde entonces.

Estoy interesado en escuchar de algunos expertos que tienen experiencia con ambos IDE, ya sean las versiones más recientes o no.

En este momento, me estoy inclinando hacia C++ Builder porque creo que VCL es mucho más robusto y fácil de usar que MFC, pero como he dicho, hace mucho tiempo que no uso MFC. No estoy interesado en crear programas que dependan de .NET Framework porque, en parte, me estoy enseñando el desarrollo nativo. ¿MFC sigue siendo el rey de Windows C++? ¿O es WTL o ATL la gran cosa?

¿Algún gurú de C++ quiere compartir sus opiniones?

EDIT: Entiendo que MFC no es el único conjunto de herramientas de GUI para Visual Studio. Sin embargo, estoy buscando algunas recomendaciones basadas en GUI toolkit + IDE. Para C++ Builder, solo hay 1 opción real, que es C++ Builder + VCL. Para VS 2008, es VS + MFC/ATL/WTL/QT .... confuso para mí, ya que no sé mucho sobre ellos.

Respuesta

15

Viniendo de Delphi, encontrará el VCL sencillo de usar con C++ Builder. Hay algunas rarezas, como que C++ no oculta el hecho de que TObjects son realmente punteros (que Delphi oculta de ti), y algunas cosas como las propiedades de la matriz se acceden de manera diferente.

Hace dos o tres años, estaba buscando alguna forma de salir de C++ Builder, pero ahora, con lanzamientos recientes (y la compra de Codegear por Embarcadero), estoy contento con el producto y la dirección.

Encontrará la cantidad de tipos de cadenas y las posibles incompatibilidades posibles bastante dolorosas con C++ Builder, ¡pero ya se acostumbrará! (std :: string, char [], wchar_t [], TCHAR, AnsiString, WideString, UnicodeString y String por nombrar algunos)

Personalmente votaría por C++ Builder, debido a la RAD bidireccional y la VCL , aunque puede que no sea la mejor forma de aprender los modismos modernos de C++.

13

Visual Studio y MFC no son lo mismo. Uso Studio todo el tiempo y evito MFC como la peste. Puede usar WTL, ATL, Win32 o cualquier cantidad de bibliotecas para crear aplicaciones sin MFC.

+0

Si no está utilizando MFC, ¿qué otras bibliotecas GUI prefiere? – Mick

+3

+1 para WTL. No es compatible oficialmente, pero es una de las mejores libretas de GUI con las que he trabajado (tercero después de VCL, segundo después de TurboVision) –

+0

Normalmente WTL (aunque usaría Win32 directamente o haría mi propia versión antes de elegir MFC) – ctacke

2

I en segundo lugar para C++ Builder, dado que ya conoce Delphi. MFC no ha cambiado mucho desde los días de VS6, por lo que el código escrito usando MFC todavía se ve como una mierda. Sin embargo, VS ha cambiado y ahora es un IDE bastante bueno.

Además, tenga en cuenta que C++ Builder no es estable como línea de productos. Hubo momentos en el pasado en que no se mantuvo/su futuro no estaba claro, etc. Por lo tanto, se está arriesgando si quiere construir algo que dure.

10

La respuesta simple es que para el desarrollo puro de C++ tiene que ser VC++.

Para expandir: como un entorno de desarrollo de C++ puro simplemente no se puede vencer a VC++, el depurador es mejor, el IDE es superior (todo en mi humilde opinión, por supuesto).Lo he usado para desarrollar bibliotecas que luego uso de C++ Builder por estas razones.

Sin embargo, una vez que inicie el desarrollo de la interfaz de usuario, o cualquier cosa que pueda resolver con el VCL o los componentes, C++ B es la mejor opción. Comparado con el VCL, MFC o ATL son horribles en comparación, y eso te deja usar .NET, que es probablemente una mejor opción, pero no

No estoy seguro de que recomiende construir un nuevo producto usando C++ B o Delphi en base a los últimos años de 'dirección' de los proveedores. Sin embargo, eso parece estar cambiando para mejor, pero hasta que haya pasado un poco más de tiempo, es difícil decir cómo las promesas se traducen en realidad.

+1

¿Te refieres? la versión gratuita (Visual Studio Express) también? Lo encontré muy limitado. –

1

Cuando se trata de desarrollo de Windows, nada realmente supera a Visual Studio. Es muy rico en funciones y tiene un excelente depurador, sin mencionar la vasta comunidad de usuarios que lo ayudará con cualquier problema que pueda encontrar. Si las herramientas de desarrollo de una empresa para su propio sistema operativo no fueran las mejores, temería su estado en el mundo del software. Pero si no necesita las características adicionales y absolutamente necesita una herramienta RAD con arrastrar & soltar (además de MFC), el generador C++ no se queda atrás. Usar el entorno delphi anterior es solo una ventaja para ti.

5

No utilicé C++ Builder desde hace años, pero en el tema de la depuración de C++, Visual Studio 2008 está lejos de otros IDEs y VS anteriores, especialmente si usa contenedores STL, ya que hace que sea muy fácil inspeccionar sus contenido.

Sin embargo, en el lado de la GUI, C++ es ahora un lenguaje de segunda clase para Microsoft. La forma del futuro es WPF y C++ is not supported as a XAML-friendly language: . Seguiremos invirtiendo en C++/CLI para permitir a los desarrolladores exponer los activos nativos de C++ al mundo administrado y viceversa. Creemos que el desarrollo puro de .NET se realiza mejor utilizando un lenguaje centrado en .NET como C# o VB. La inversión en C++/CLI se realizará principalmente en las áreas de interoperabilidad administradas por los nativos.

Por lo tanto, para crear un de aspecto moderno C++ interfaz gráfica de usuario, su mejor opción de hecho puede haber VCL - VCL si continúa haciendo posible tal ;-)

2

Sólo por el placer de hacerlo, podemos tirar en eclipse a la mezcla también?
Acabo de encontrar trabajo en eclipse para ser mejor que trabajar en visual studio.

A menos que esté utilizando VS2008 con winforms, la compatibilidad con la interfaz gráfica de usuario es a través de plantillas de Windows (normalmente de recursos), que es viejo y probablemente no desee utilizar. Por lo tanto, el soporte de GUI en VS2008 no es tan especial.

En cuanto a la caja de herramientas GUI, tal vez ver What is a good GUI/widgets toolkit

1

Una cosa sobre la última C++ Builder de CodeGear - Me refiero a la versión 2009 - es que sus actualizaciones pueden realmente hacer que odio este IDE.
Después de haber instalado la 2da actualización, descubrí que el bloque if/else NO FUNCIONA CORRECTAMENTE. Puede ingresar la instrucción IF pero no puede ingresar en otro - y no depende de la situación - esta instrucción de lenguaje simplemente dejó de funcionar. El tiempo que tardé en descubrirlo fue de dos o tres horas, y comencé a desarrollar la aplicación win32 necesaria en VS, considero que es más confiable que el producto CodeGear. La segunda característica No me gusta que no pueda desactivar el soporte Unicode y tenga que usar EXPRESAMENTE las versiones ANSI de las funciones win32 (por ejemplo, SendMessageA (...)) que es muy aburrido. Apenas llego a la fecha límite para terminar el trabajo usando VS2008.
Es solo mi experiencia, la elección es suya

+0

¿Tiene un número de informe de control de calidad para el problema if/else? – Roddy

+4

Además, si establece la opción para "TCHAR = char", obtendrá las llamadas ANSI win32. ajústelo a "wchar_t" para llamadas Wide Win32. – Roddy

6

Si está haciendo un desarrollo puro de C++ en Windows, entonces es difícil vencer a VS. El compilador es rápido, bastante conforme con los estándares y produce código bien optimizado. El depurador es el mejor en cualquier plataforma. El IDE está bien.

También es claramente la cadena de herramientas de compilador más ampliamente soportada en Windows. Descargue cualquier proyecto/biblioteca de código abierto y, si se admite Windows, es probable que se haya creado y probado con VS. Su popularidad también asegura que es el más útil tener en un currículum.

¿Qué le ofrece Builder? Una biblioteca de GUI razonable. Bueno, eso está bien, pero hay muchos otros juegos de herramientas GUI decentes (wxWidgets, GTK, Qt, etc.). Muchos son de código abierto y multiplataforma.

Sin embargo, en estos días me parece mejor reestructurar mis aplicaciones para proporcionar una API y luego construir la GUI sobre ella en un idioma diferente. La fortaleza de C++ es no en desarrollo de GUI. Al menos no hoy ...

Elegiría - y recomendaría - VS sobre el Constructor.

2

Bueno, se puede utilizar Eclipse + MinGW + Qt4 + QT Eclipse Integración y conseguir que todas las cosas: depurador, diseñador de interfaz gráfica de usuario visual, etc.

Mente que es Qt4 licencia dual: Open Source y la licencia comercial .

También puede combinar Qt4 con Visual Studio (incluso con Express) y usar todas las ventajas que VS le brinda.

Para mí Qt4 es el camino a seguir y VS over Builder.

1

Me encantó C++ Builder hace un par de años. Fue fantástico. Fue mucho mejor con su VCL que VS con su MFC horrible. Entonces las cosas han cambiado con cada año.

El generador ha estado cayendo; 1. Builder no se ha actualizado con ninguna funcionalidad real. 2. Borland abandonó la idea de volver a escribir VCL en C++ para usarlo con Kylix and Builder 3. El desastre de CodeGear y el futuro incierto de Builder alejaron a muchas personas del producto.

VS ha estado mejorando; 1. IDE se ha mejorado mucho 2. El compilador del que menos cumple con las normas en la plataforma Windows se convirtió en el más estándar (sin contar GCC en MinGW, por supuesto) 3. surgió .NET y existía Managed C++ luego C++/CLI para hacer posible el uso de este marco desde dentro de C++

Tenemos jugadores nuevos y fuertes 1. Eclipse 2.Qt Creator

y kits de herramientas nueva interfaz gráfica de usuario

  1. wxWidgets
  2. Qt4 ahora tiene también licencia de código abierto

En resumen; Constructor está muerto a causa Borland

  1. estaba pensando en Delphi es tan maravilloso que en realidad no se necesita nada más para ganar dinero
  2. ha caído en el bombo de Java y ha invertido muchos recursos en ella
  3. no entendía gran poder de C++ y en su lugar apilar a pascal, que siempre ha sido un lenguaje académico sin productos reales creados con él
+0

Qt no tiene puertos nativos verdaderos como lo hace wxWidgets. Lo que queremos decir con esto es que, aunque Qt los dibuja de manera bastante realista, Qt dibuja sus propios widgets en cada plataforma. (http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits#Qt) – Mick

+0

"1. Builder no se ha actualizado con ninguna funcionalidad real" Eso fue cierto en 2004, cuando parecía que Borland abandonaría C++ Builder e iría con C++ BuilderX en su lugar. Han sucedido muchas cosas desde entonces (C++ Builder 2006, 2007, 2009). –

3

C++ Builder es muy superior a MS-VS cuando se trata de desarrollo basado en UI y aplicación orientada a bases de datos. MFC apesta !! Sin embargo, VS tiene mejores capacidades de depuración.

0

2012 está a punto de terminar. Era un usuario de Borland C++ y luego me convertí en VC++ 6.0. Recientemente hubo un requisito de un cliente que quería un final de GUI para su producto y no quería la dependencia de .NET Framework. así que exploré el Embarcadero RAD Studio XE2.

Cuando se trata del desarrollo de C++ RAD, creo que ni siquiera MSVC++ se acerca a él. Fue como una brisa. aunque encontré problemas al compilar plantillas. por ejemplo, si defines un functor y quieres combinar el constructor con la llamada al functor, no puedes hacerlo en C++ B, tienes que crear un objeto y luego llamar al functor por separado. Hubo otros problemas también, ya que no pude compilar completamente la biblioteca Poco.

Encontré la solución creando las DLL en VC++ y llamándolas desde la interfaz C de C++. eso da lo mejor de ambos.

Espero que Embarcadero alcance los estándares pronto.

1

Prueba Lazarus en su lugar. Escribe una vez, compila muchos. Se ejecuta en múltiples plataformas. Cualquiera que provenga de Delphi y Kylix se sentirá extremadamente en casa con esta herramienta RAD. En cuanto al futuro, es de código abierto con una comunidad sólida, el desarrollo continuará sin restricciones comerciales.

Cuestiones relacionadas