x64 walker usar program error descargar dependency como 0xc00007b c++ windows dll dependencies

c++ - walker - depends descargar



Falta msvcr80.dll (3)

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



El paquete redistribuible CRT de VC80 SP1 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 se encuentra en %ProgramFiles%/Microsoft Visual Studio 8/VC/redist . Si no tiene instalado VC8, creo que puede descargar el paquete redistribuible CRT de Microsoft.com.

Además, para averiguar exactamente qué versión de CRT (por ejemplo, RTM frente a SP1) es necesaria para un binario que se creó con VC8 o VC9, puede extraer el manifiesto:

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

Busque 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 los nombres del subdirectorio WinSxS (desafortunadamente 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


Si está creando y distribuyendo la DLL mencionada, considere usar un módulo de fusión para Visual C ++ 8.0 CRT como parte de su instalador.

Noté que hay una nueva herramienta mt.exe y un nuevo 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.