2010-09-22 20 views
8

Hice un programa en Visual Studio 2010 en Windows 7 de 64 bits. Cuando trato de ejecutarlo en Windows XP de 32 bits recibí el mensaje de que falta msvcr100.dll. Cuando intento copiar ese archivo de Win7 a WInXP recibo el mensaje de que msvcr100.dll es incorrecto. ¿Cómo configurar el edificio en VS para que msvcr100.dll no sea necesario?Missing msvcr100.dll

Respuesta

13

Primero debe asegurarse de que está compilando un ejecutable de 32 bits: los de 64 bits no se ejecutarán en Windows de 32 bits.

entonces usted puede ...

  • the 32 bit redistributables nave con su solicitud.
  • Elimina la dependencia del tiempo de ejecución por completo y vincúlala estáticamente a los tiempos de ejecución de C++. Para hacer esto, configure Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library en Multi-threaded (/MT).
+0

Gracias, eso ayudó :) – Ichibann

2

Vincular las bibliotecas de tiempo de ejecución estáticamente debería ayudar. Vaya a Opciones de proyecto -> C/C++ -> Generación de código -> Biblioteca de tiempo de ejecución y cambie el valor a Depuración multiproceso o multiproceso y vuelva a compilar. De esta forma, su aplicación no debería depender de las DLL de tiempo de ejecución.

Además, no olvides construir un ejecutable de 32 bits.

1

Las respuestas anteriores me ayudaron a lo largo, pero todavía estaba recibiendo el error:

fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds

Así que para ayudar a otros que pueden tener, como yo, pasado demasiado tiempo dando tumbos en busca de una solución clara , Me gustaría agregar la información que resolvió este problema para mí. Resultó que mi proyecto tenía el ajuste "Uso de MFC" incorrecto para hacer uso de la respuesta anterior.

Para ponerlo en términos claros:

abrir las propiedades del proyecto (Alt-F7 o Proyecto-menús -> [Mi proyecto] Propiedades) e ir a Project -> Properties -> Configuration Properties

Si General -> Use of MFC se establece en Use MFC in a Static Library

debe establecer

C/C++ -> Code Generation -> Runtime Library

a EIT su Multi-threaded Debug (/MTd) o Multi-threaded (/MT)

y si

General -> Use of MFC se establece en Use MFC in a Shared DLL

debe establecer

C/C++ -> Code Generation -> Runtime Library

a cualquiera Multi-threaded DLL (/MD) o Multi-threaded Debug DLL

me dieron esta respuesta aquí para allá m el Microsoft community answers website y todo el crédito debe ir al David Wilkinson.