Foros del Web » Programación para mayores de 30 ;) » C/C++ »

msvcr110.dll missing

Estas en el tema de msvcr110.dll missing en el foro de C/C++ en Foros del Web. Hola utilizo visual studio 2012 en windows 8 y los programas de consola funcionan bien en mi pc pero cuando los envio a otras personas ...
  #1 (permalink)  
Antiguo 09/06/2013, 05:42
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
msvcr110.dll missing

Hola utilizo visual studio 2012 en windows 8 y los programas de consola funcionan bien en mi pc pero cuando los envio a otras personas aparece el problema de que no existe msvcr110.dll . Busque por google y encontre

http://social.msdn.microsoft.com/For...-3d163991662f/

Al intentar instalar hotfix (lo que te dicen desde la web) me sale el error de bloqueo:

Código error:
Ver original
  1. RC Updates no se aplica o esta bloqueado por otra condición

Como corregir los 2 errores (El de msvcr110.dll y del hotfix) ??

Saludos
  #2 (permalink)  
Antiguo 09/06/2013, 07:19
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: msvcr110.dll missing

Para el msvcr110.dll supongo que debes incluir el dll en tu distribucion para que se instale en el mismo directorio del ejecutable o en el directorio de binarios del sistema (en windows es windows/system o windows/syswow64).

Saludos
vosk
  #3 (permalink)  
Antiguo 09/06/2013, 09:28
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
Respuesta: msvcr110.dll missing

Cita:
Iniciado por vosk Ver Mensaje
Para el msvcr110.dll supongo que debes incluir el dll en tu distribucion para que se instale en el mismo directorio del ejecutable o en el directorio de binarios del sistema (en windows es windows/system o windows/syswow64).

Saludos
vosk
Si lo incluyo en mi windows/system los demás también tienen que hacer lo? Esque no te entendí bien.
  #4 (permalink)  
Antiguo 09/06/2013, 10:33
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: msvcr110.dll missing

Dicho de otra forma: hay librerias que se linkan de forma estatica y otras que se lincan de forma dinamica; las que se linkan de forma estatica no requieren exportar los binarios porque sus datos usados se 'escriben' en el ejecutable durante la compilacion; en cambio los que se linkan de forma dinamica cargan los datos del binario en el momento de la ejecucion en el pc del cliente (todo esto es mas o menos visto por encima, para entendernos). De echo supongo que ya te habras dado cuenta que dll tiene algo que ver con dinamic link library :)

Ahora viene el truco: en windows cuando se carga un modulo via LoadLibrary se indica una ruta para el dll. Como hay varias aplicaciones que posiblemente van a usar el mismo dll la funcion admite buscar una dll solo por su nombre (sin ruta), de forma que sigue una secuencia de busqueda: primero en el mismo directorio que el ejectable que la llama, si no existe buscará en el directorio de trabajo actual, si alli tampoco existe buscará en el directorio de binarios del sistema (windows/system, este directorio varia segun las versiones de windows), si aun no lo ha encontrado luego buscará en el directorio de windows, y si aun alli tampoco hay la dll solicitada aun echara un vistazo a los directorios declarados en la variable de entorno PATH; si no la ha encontrado retorna nulo y la aplicacion que la requiere debe mostrar una alerta con eso de 'falta algo32.dll'.

Eso significa que puedes instalar el dll que necesitas en cualquiera de esas rutas por las que busca la funcion de carga. Lo mas facil es dejarlo junto con la aplicacion:

Código:
c:/program files/miapp/ejecutable.exe
c:/program files/miapp/msvcr110.dll
Ten en cuenta que los ide llevan un directorio de binarios, de forma que las librerias que usas para desarrollar guardan ahi su dll; algunos ide añaden un PATH a las variables de entorno que apunta a su directorio de binarios, entonces la aplicacion funciona cuando compilas y ejecutas porque la funcion terminará buscando en los directorios del PATH; por el comtrario hay algunas librerias de programacion que no se instalan en los directorios del ide, sino que tienen su propio sitio y al instalarlas guardan su binario en el directorio de binarios de windows, entonces cuando compilas y ejecutas tambien funciona porque ese directorio es uno por los que busca la funcion.

Todo esto que te he comentado es mas o menos por encima, puedes buscar mas informacion por ahi y encontraras articulos con mejores explicaciones (y mas tecnicas) que este rollo que he colgado.

Saludos
vosk
  #5 (permalink)  
Antiguo 10/06/2013, 07:20
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
Respuesta: msvcr110.dll missing

Cita:
Iniciado por vosk Ver Mensaje
Dicho de otra forma: hay librerias que se linkan de forma estatica y otras que se lincan de forma dinamica; las que se linkan de forma estatica no requieren exportar los binarios porque sus datos usados se 'escriben' en el ejecutable durante la compilacion; en cambio los que se linkan de forma dinamica cargan los datos del binario en el momento de la ejecucion en el pc del cliente (todo esto es mas o menos visto por encima, para entendernos). De echo supongo que ya te habras dado cuenta que dll tiene algo que ver con dinamic link library :)

Ahora viene el truco: en windows cuando se carga un modulo via LoadLibrary se indica una ruta para el dll. Como hay varias aplicaciones que posiblemente van a usar el mismo dll la funcion admite buscar una dll solo por su nombre (sin ruta), de forma que sigue una secuencia de busqueda: primero en el mismo directorio que el ejectable que la llama, si no existe buscará en el directorio de trabajo actual, si alli tampoco existe buscará en el directorio de binarios del sistema (windows/system, este directorio varia segun las versiones de windows), si aun no lo ha encontrado luego buscará en el directorio de windows, y si aun alli tampoco hay la dll solicitada aun echara un vistazo a los directorios declarados en la variable de entorno PATH; si no la ha encontrado retorna nulo y la aplicacion que la requiere debe mostrar una alerta con eso de 'falta algo32.dll'.

Eso significa que puedes instalar el dll que necesitas en cualquiera de esas rutas por las que busca la funcion de carga. Lo mas facil es dejarlo junto con la aplicacion:

Código:
c:/program files/miapp/ejecutable.exe
c:/program files/miapp/msvcr110.dll
Ten en cuenta que los ide llevan un directorio de binarios, de forma que las librerias que usas para desarrollar guardan ahi su dll; algunos ide añaden un PATH a las variables de entorno que apunta a su directorio de binarios, entonces la aplicacion funciona cuando compilas y ejecutas porque la funcion terminará buscando en los directorios del PATH; por el comtrario hay algunas librerias de programacion que no se instalan en los directorios del ide, sino que tienen su propio sitio y al instalarlas guardan su binario en el directorio de binarios de windows, entonces cuando compilas y ejecutas tambien funciona porque ese directorio es uno por los que busca la funcion.

Todo esto que te he comentado es mas o menos por encima, puedes buscar mas informacion por ahi y encontraras articulos con mejores explicaciones (y mas tecnicas) que este rollo que he colgado.

Saludos
vosk


Hola, me he confundido al poner el nombre del problema . En realidad ahora lo estoy probando en una maquina virtual windows xp 32 bits y el archivo que no existe es: MSVCP110D.dll también busque por google y pues no había casi nada, ni para descargar este archivo ya que me aparece el error anterior ... Encontré en una pagina en la que decían que para corregir el problema había que descargar update 3 de visual studio 2012 lo, hice pero nada. Sabéis algo que me pueda ayudar?
  #6 (permalink)  
Antiguo 10/06/2013, 12:47
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: msvcr110.dll missing

Ok, segun parece el MSVCP110D.dll la D significa que estas distribuyendo la version debug (depuracion); prueba a compilar con salida 'release' (distribucion normal) y cancela la debug (o no canceles la debug pero distribuye solo la release). En visual studio no se como se hace para compilar en modo release, en otros ide esta en propiedades del proyecto y ya tienes un par de checkboxes para ello.

Saludos
vosk
  #7 (permalink)  
Antiguo 10/06/2013, 13:57
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
Respuesta: msvcr110.dll missing

Cita:
Iniciado por vosk Ver Mensaje
Ok, segun parece el MSVCP110D.dll la D significa que estas distribuyendo la version debug (depuracion); prueba a compilar con salida 'release' (distribucion normal) y cancela la debug (o no canceles la debug pero distribuye solo la release). En visual studio no se como se hace para compilar en modo release, en otros ide esta en propiedades del proyecto y ya tienes un par de checkboxes para ello.

Saludos
vosk
Hola, lo cambie a release pero sigue igual ...
Configuracion: Active(Relase)
Plataforma: Active(Win32)

Alguna otra idea ?
  #8 (permalink)  
Antiguo 10/06/2013, 15:38
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: msvcr110.dll missing

No, siento no ser de mas ayuda

Saludos
vosk
  #9 (permalink)  
Antiguo 10/06/2013, 18:45
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: msvcr110.dll missing

No se si te ayude pero aqui hay pregunta similar.

http://stackoverflow.com/questions/3...ct-for-release (la solución es bastante simple).

Y aquí hay un articulo completo con imágenes http://www.geekadmin.com/?p=34
  #10 (permalink)  
Antiguo 11/06/2013, 13:35
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
Respuesta: msvcr110.dll missing

Cita:
Iniciado por razpeitia Ver Mensaje
No se si te ayude pero aqui hay pregunta similar.

http://stackoverflow.com/questions/3...ct-for-release (la solución es bastante simple).

Y aquí hay un articulo completo con imágenes http://www.geekadmin.com/?p=34
No.. sigue igual. Bueno veo que el problema no se resuelve. Entonces voy a dejar esto aparte y pregunto: como tener una compatibilidad total o casi total con windows (xp,7,vista,8...) usando visual studio 2012? Y para enviar un programa a otra persona debo de enviar le el archivo .exe o también otros archivos? (Si mi programa solo esta compuesto de archivo con el codigo aparte de los crea visual studio)

Saludos
  #11 (permalink)  
Antiguo 12/06/2013, 10:55
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 10 meses
Puntos: 22
Respuesta: msvcr110.dll missing

Hola, para evitarte problemas como requisito el usuario debe tener instalado el Microsoft Visual C++ Redistributable (muy simple y rápido de instalar, además muchas veces ya lo tienen instalado por haber instalado otras aplicaciones). También puedes crear un instalador que incluya junto con tu aplicación la instalación de este paquete.

Saludos.
  #12 (permalink)  
Antiguo 12/06/2013, 12:32
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 11 meses
Puntos: 29
Respuesta: msvcr110.dll missing

Cita:
Iniciado por fightmx Ver Mensaje
Hola, para evitarte problemas como requisito el usuario debe tener instalado el Microsoft Visual C++ Redistributable (muy simple y rápido de instalar, además muchas veces ya lo tienen instalado por haber instalado otras aplicaciones). También puedes crear un instalador que incluya junto con tu aplicación la instalación de este paquete.

Saludos.
Hola, voy a probar y si esto corrige el problema, como puedo comprobar con la aplicación (un archivo .exe de consola) si es compatible o no y luego abrir el resto del probrama, osea si es compatible ejecutar el programa y si no ejecutar el instalador redistributate y luego el programa ?

Etiquetas: funcion, int, missing, programa, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:18.