Pregunta

¿Todavía necesitamos que molestarse con Vcredist.exe la hora de distribuir las ventanas de aplicaciones nativas? ¿Alguno de ellos vienen equipados con Win-7?

Si no es así, ¿hay razones técnicas éstos no se envían a la gente a través de, por ejemplo, actualización de las ventanas - insteadof permitirnos carga a los clientes con todavía otra-cosa-that.must-trabajo? (Ok, que puede sonar argumentativa, pero estoy realmente preguntándose la razón de estas bibliotecas no se instalan por defecto / modificada en máquinas Windows)

¿Fue útil?

Solución

Creo que depende de cómo / lo que está vinculado. Si estás vinculado directamente a kernel32.dll, etc, entonces no importa, por supuesto (es decir, la biblioteca de tiempo de ejecución C está embebido), pero Microsoft no recomienda este método de distribución.

Si estás vinculado a través msvcr80 / 90/2010 is.dll lo que sea, entonces puede que tenga que distribuir esa biblioteca de tiempo de ejecución como en XP no viene de serie. msvcr80 viene en Vista, pero no msvcr90 no creo que - a pesar de que podría obtener añadida por actualización de las ventanas. Aún así, no se puede confiar en él estar allí, por tanto, la prueba de fallos es tener una copia de la misma por si acaso.

Por lo que yo sé msvcrt.dll (que los enlaces a MinGW) se distribuye con todo> XP. ¿Se comunica vc6 a esto? No tenía VC ++ en aquel entonces.

Tome una mirada en el ejecutable con depends.exe desde el SDK de Windows y trabajar en lo que viene con más allá de las partes de la API de Windows.

Otros consejos

Sí, lo hace. De lo contrario el programa se bloqueará de forma espectacular cuando intenta ejecutarlo. Muchos de los usuarios no se están ejecutando Win7, e incluso entonces no hay manera de asegurar que tengan instalado el tiempo de ejecución sin incluirla en su instalador.

Como alternativa, se podría enlazar con la acumulación estática del tiempo de ejecución, evitando la necesidad de molestarse con el redistribuible de C en tiempo de ejecución.

Cuando se compila con GCC Siempre vínculo con MSVCRT.DLL que es siempre allí en XP y versiones posteriores.

Esto es en respuesta al comentario de Larry Osterman fecha 14 Apr a las 23:29:

Usted dice:

  

msvcrt.dll no es el tiempo de ejecución C. Es un componente interno de Windows que no debe ser nunca   utilizado por las aplicaciones 3 ª parte. Se habrá dado cuenta que no se puede encontrar ninguna referencia en MSDN que las   utilizar este archivo DLL. Érase una vez las aplicaciones 3 ª parte utilizaron esta pero que no ha sido el   caso por cerca de 10 años. - Larry Osterman Abr 14 a las 23:29

Esto parece ir en contra de toda la premisa del sistema MinGW que se basa en msvcrt.dll acceso y su comentario me permitió entender mejor cómo funciona MinGW. Resulta que MinGW sigue utilizando el msvcrt.dll que fue enviado de nuevo en 1998! Vea este enlace:

http://www.mingw.org/wiki/C99

Gracias,

Todd

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top