visual studio puede proyecto programa otra instalador generar exportar encuentra ejecutar ejecutable datos crear con como archivo abrir c++ visual-studio visual-studio-2008 visual-c++ exe

c++ - puede - generar ejecutable visual studio 2010 c#



problemas al ejecutar el archivo exe creado con Visual Studio en otra computadora (5)

Creé una aplicación de servidor de cliente en C ++ usando Visual Studio.

Ahora quiero ejecutar el archivo exe cliente en otra computadora (que no tiene instalado Visual Studio) pero cuando intento ejecutar el archivo exe aparece el siguiente mensaje de error:

Esta aplicación no ha podido iniciarse porque la configuración de la aplicación es incorrecta. Reinstalar la aplicación podría resolver el problema.

¿Cómo puedo ejecutar el archivo exe sin instalar nada en la computadora?


Desplegué mi programa en versión en lugar de depurar y el exe ahora funciona en la otra computadora


No he visto ese error específico antes, generalmente es un error alrededor de una DLL faltante (ventanas redistribuibles). Suponiendo que en realidad no hay un problema con la configuración, tiene dos opciones:

1) Cambie el modo de compilación de DLL multiproceso a multiproceso. Esto se puede hacer desde la sección C ++ de las propiedades del proyecto en la generación de código. En modo multiproceso, su binario se vinculará estáticamente contra las ventanas redistribuibles. Esto es probablemente lo que quieres.

2) Instale las ventanas redistribuibles en la máquina de destino. Probablemente esto no esté bien porque usted declara que no desea instalar nada en la máquina de destino.

Una advertencia sobre la opción 1, las diferentes versiones de Windows tienen versiones diferentes del redistribuible. Es posible encontrar un entorno altamente especializado en el que un programa vinculado estáticamente no se comporte como se espera.


Parece que te faltan algunos archivos DLL. Asegúrate de copiar los archivos DLL apropiados junto con exe.


Fondo:

  • Aplicaciones de C ++ Necesitan ensamblajes en tiempo de ejecución (DLL) para ejecutarse en cualquier computadora con Windows.
  • Normalmente, estos conjuntos de tiempo de ejecución se encuentran en el directorio C: / Windows / Winsxs.
  • Todos los sistemas operativos de Windows por defecto vienen con varios conjuntos de tiempo de ejecución.
  • Pero si su aplicación se desarrolló en una versión más nueva del entorno de ensamblaje en tiempo de ejecución, la computadora de destino también necesita que exista la misma versión de tiempo de ejecución allí.
  • Cuando instala Visual Studio, la mayoría de las versiones más recientes de ensamblajes en tiempo de ejecución llegan a su computadora.

Solución: Finalmente, de todos modos, el equipo objetivo debe tener los ensamblados de tiempo de ejecución exactos. Hay algunas formas de hacerlo (para obtener más información, busque en google cada uno).

  1. Vincule estáticamente los ensamblajes de tiempo de ejecución con su aplicación (Problemas para aplicaciones grandes).
  2. Instale el entorno de redistribución de C ++ en la computadora de destino (la forma más fácil).
  3. Creación de un proyecto de instalación para implementar el tiempo de ejecución en la computadora de destino al instalar la aplicación. (No está mal)
  4. Implementación de ensamblajes en tiempo de ejecución como ensamblajes privados (profesionales), consulte here para obtener más detalles

Condiciones:

  • No debes usar .NET Framework en tu aplicación.
  • No debe utilizar el soporte de tiempo de ejecución de lenguaje común para su aplicación

Las aplicaciones creadas con Visual Studio dependen de Visual C ++ Redistibutable (VCRedist). Cuando el programa se vincula dinámicamente, sus archivos binarios necesitarán MSVCR**.dll (Microsoft C Runtime Library).

En MSDN, hay un buen artículo llamado Redistribución de archivos de Visual C ++ (para Visual Studio 2008) , que indica que hay errores de tiempo de ejecución potenciales en caso de que la biblioteca de Visual C ++ requerida no esté instalada:

puede recibir uno de los siguientes mensajes de error según la versión de Windows en la que intenta ejecutar su aplicación:

  • La aplicación no se pudo inicializar correctamente (0xc0000135).
  • Esta aplicación no ha podido iniciarse porque la configuración de la aplicación es incorrecta. Reinstalar la aplicación puede solucionar este problema.
  • El sistema no puede ejecutar el programa especificado.
Básicamente tienes dos opciones:
  • La solución más simple posible es cambiar el enlace dinámico de las bibliotecas de tiempo de ejecución al enlace estático. Vaya a las propiedades del proyecto y en C / C ++> Generación de código encontrará la opción Biblioteca de tiempo de ejecución . Debe cambiarlo de Multi-threaded DLL (/MD) a Multi-threaded (/MT) .
  • Otra posible solución es asegurarse de que la versión correcta del Paquete redistribuible de Microsoft VC ++ esté instalada en la máquina de destino.

Pero su aplicación puede depender de otras DLL también. En caso de que quiera averiguar cuáles son las dependencias de su programa, existe una gran utilidad llamada Dependency Walker , que lo ayudará en esta y muchas otras situaciones :)