2010-09-26 6 views
7

me preguntaba cómo se hacen programas como ccleaner y utorrent? AFAIK están escritos en C++ pero se ejecutan sin necesidad de .NET Framework y aparentemente también se ejecutan en Windows 98. ¿Cómo puede hacerse esto? Visual C++ requiere que se instale .NET Framework para ejecutar el archivo binario.cómo crear programas en C++ sin el requisito de .net framework para ejecutar (como ccleaner y utorrent)

Si bien .net framework es gratuito, puede ser una molestia y probablemente alejará a muchos usuarios ya que la configuración es de 20MB + e instala varios archivos/entradas de registro.

Respuesta

15

Visual C++ requiere .NET Framework a para instalar el archivo binario.

No, no es así. De hecho, C++ y el framework .NET están muy poco relacionados. Solo necesita .NET Framework si su aplicación está escrita en C++/CLI, que está muy lejos de C++.

Si desarrolla una aplicación en C++ estándar, no necesita el .NET framework, solo el tiempo de ejecución incluido con su cadena de herramientas (Visual C++, mingw, lo que sea). En algunos casos, también puede vincular el tiempo de ejecución estáticamente, por lo que ni siquiera necesita distribuir archivos DLL, etc.

En cuanto a la creación de GUI en C++ regular, existen conjuntos de herramientas disponibles. Microsoft ofrece la API de Windows desnuda, MFC, WTL y hay productos de 3 ª parte, como Qt o wxWidgets

+0

Gracias por la respuesta, la sugerencia de kit de herramientas debe ser útil. – luq

4

Cree un proyecto C++ nativo, sin usar CLI. En el Asistente de aplicación VC++ puede seleccionar cualquier tipo, excepto CLI.

Native C++ project tiene sus propios requisitos de tiempo de ejecución: tiempo de ejecución C/C++, tiempo de ejecución MFC (si se utiliza MFC), pero .NET Framework no es necesario.

+0

Gracias por la respuesta. – luq

+0

¿No quiere decir [CLR] (http://msdn.microsoft.com/en-us/library/6765tta0.aspx) tipo de proyecto? –

3

Al crear el proyecto, configurarlo como un proyecto Win32, no un proyecto CLR. Eso asegurará que compilas contra el estándar de C++ en lugar de la variante administrada de C++ utilizada para .Net.

+0

Gracias por los comentarios. Intenté crear un proyecto de win32, pero es mucho menos sencillo que crear una aplicación de formularios (que requiere .NET Framework). Las aplicaciones de formularios son lo que estoy familiarizado, así que tal vez le daré otra oportunidad. – luq

+0

@luq: Acabas de descubrir una de las razones por las que .Net es popular. Es posible que desee comprobar Qt (http://qt.nokia.com ... la versión LGPL es gratuita) que ofrece una biblioteca de herramientas de interfaz de usuario multiplataforma para C++ estándar (es decir, no .Net). Se puede usar con Visual Studio 2010 o puede usar Qt Creator, que es un IDE completo para el desarrollo de C++ utilizando Qt. – andand

2

Es importante comprender la diferencia entre el código nativo y el código administrado en Windows. Hay una discusión básica de ese tema en SO here y una inmersión más profunda de una persona de Microsoft here.

Su preocupación por tomar una dependencia de .Net Framework puede estar desactualizada; las nuevas PC lo tendrían instalado por defecto, ya que Vista y Windows 7 lo incluyen, y muchos más antiguos lo tendrán debido a las aplicaciones .Net existentes o a través de la Actualización automática de Microsoft: hay información sobre las tasas de penetración relativa de la versión .Net here.

Dicho esto, no elegiría C++/CLI a menos que tenga requisitos de interoperabilidad de código nativo/administrado: use C++ para el código nativo y C# para el código administrado.

+0

Gracias por los comentarios. Mi principal preocupación es que un buen porcentaje de usuarios finales no tendría .NET Framework instalado y tener que instalar un archivo de 20 + MB para ejecutar una aplicación considerablemente más pequeña no es exactamente conveniente. Echaré un vistazo a los enlaces proporcionados también, ya que no me he familiarizado exactamente con los conceptos de código nativo y administrado. – luq

1

En mi opinión .NET Framework te ofrece solo una alta velocidad de producción, de lo contrario, lo odio.

Uso .Net cuando:

1 - Usted quiere acelerar la producción

2 - Ya programa con un equipo que se utilice.Net

3 - ¿Quieres portabilidad (sólo entre las ventanas y los sistemas de apoyo)

Uso de programación Win32 normales/nativo cuando:

1 - quiere más libertad

2 - quiere más control sobre el sistema y el programa u escribe

3 - tiene exceso de tiempo

Cuestiones relacionadas