2008-10-20 17 views
11

Si el tiempo de ejecución C++ msvcr80.dll falta en una biblioteca compilada, ¿hay alguna forma de determinar qué versión se utilizó para crear la biblioteca o hacer que se ejecute en una versión posterior de msvcr80.dll?Missing msvcr80.dll

Respuesta

13

El paquete redistribuible VT80 SP1 CRT instalará las versiones RTM y SP1 del tiempo de ejecución de C en %SystemRoot%\WinSxS (suponiendo que esté utilizando Windows XP o Vista, Windows 2000 no admite ensamblajes uno al lado del otro). Si tiene instalado VC8, el paquete redistribuible CRT está en %ProgramFiles%\Microsoft Visual Studio 8\VC\redist. Si no tiene instalado VC8, creo que puede descargar el paquete redistribuible CRT de Microsoft.com.

También, para saber exactamente qué versión de CRT (por ejemplo, frente a RTM SP1) que se necesita por un binario que se construye con VC8 o VC9, puede extraer el manifiesto:

mt.exe -inputresource:mydll.dll;#1 -out:mydll.dll.manifest 

buscar algo como esto:

<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> 
</assemblyIdentity> 

Mi ejecutable requiere la versión CRT 9.0.21022.8. Este número de versión también está incrustado en las WinSxS nombres de los subdirectorios (por desgracia, está rodeado de hashes):

D:>dir c:\windows\WinSxS\*VC90.CRT* 
12/14/2007 02:16 AM <DIR>   amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b 
12/14/2007 02:00 AM <DIR>   x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91 
+2

Mt.exe es una herramienta proporcionada en el paquete SDK/Visual Studio de Microsoft para evaluar manifiestos. Puede encontrar más información sobre mt.exe en la página de documentación de MSDN: http://msdn.microsoft.com/en-us/library/aa375649(VS.85).aspx (asegúrese de consultar el contenido del usuario) en el fondo) – Steve

3

Si va a ser autor y distribuir el DLL mencionados, considerar el uso de un módulo de combinación para Visual C++ 8.0 CRT como parte de tu instalador

Me di cuenta de que hay una nueva herramienta mt.exe y una nueva CRT de Visual C++ en Windows SDK 6.1. Utilizo el módulo de fusión como un requisito previo en el instalador InstallShield 12 con gran éxito.