2010-03-02 19 views
5

Tengo un amigo que se está apoderando de un proyecto de Visual C++ y tiene problemas para ejecutarlo. Es una aplicación de gráficos y utiliza la biblioteca Qt GUI. La razón por la que menciono esto es por el siguiente error.Problema con el programa de Visual C++: no se puede encontrar el CRT de depuración

Se puede construir y vincular el programa utilizando Visual Studio 2010, pero cuando se ejecuta este mensaje aparece en el visor de sucesos:

Activation context generation failed for "D:\Test\Qt\4.2.2\bin\QtGuid4.dll". Dependent Assembly Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b", type="win32", version="8.0.50608.0" could not be found. Please use sxstrace.exe for detailed diagnosis.

Cuando hacemos lo que pide el mensaje y corremos sxstrace.exe, esto es lo que vemos:

Begin Activation Context Generation. Input Parameter: Flags = 0 ProcessorArchitecture = Wow32 CultureFallBacks = en-US;en ManifestPath = D:\Test\Qt\4.2.2\bin\QtGuid4.dll AssemblyDirectory = D:\Test\Qt\4.2.2\bin\

--------------- INFO: Parsing Manifest File D:\Test\Qt\4.2.2\bin\QtGuid4.dll. INFO: Manifest Definition Identity is (null). INFO: Reference: Microsoft.VC80.DebugCRT,processorArchitecture="x86"type="win32",version="8.0.50608.0" INFO: Resolving reference Microsoft.VC80.DebugCRT,processorArchitecture="x86""win32",version="8.0.50608.0". INFO: Resolving reference for ProcessorArchitecture WOW64. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. INFO: Resolving reference for ProcessorArchitecture x86. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.MANIFEST. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.MANIFEST. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. ERROR: Cannot resolve reference Microsoft.VC80.DebugCRT,processorArchitecture="x86", publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0".

Disculpa la duración de ese mensaje, pero pensé que podría hacer un poco de recuerdos. ¿Es este un caso de que no tenga el Visual C++ 2005 (creo que de ahí viene el VC80) las bibliotecas de tiempo de ejecución de C instaladas? Si es así, ¿puede descargar el paquete de redistribución de VC++ e instalarlo, y todo estará bien entonces? ¿O es este un problema completamente diferente?

Respuesta

7

Si su amigo no tiene VS2005 instalado, no tendrá las bibliotecas de tiempo de ejecución de depuración para él. No forman parte de los tiempos de ejecución redistribuibles y IIRC, Microsoft le prohíbe distribuirlos usted mismo, por lo que debe tener VS2005 instalado para poder obtenerlos.

Sugiero que reconstruya la biblioteca afectada si es posible; Recuerdo vagamente que hay un par de artículos en la web sobre cómo reconstruir el GPL QT usando Visual Studio, que creo que no es oficialmente compatible.

Mezclar C++ runtimes requiere mucho cuidado y puede caer en una trampa bastante desagradable si no lo hace exactamente bien. Si reconstruir todas las bibliotecas con VS2010 no es una opción, su amigo tendrá que hacerse cargo de VS2005. Vale la pena comprobar si MS todavía ofrece la Express Edition de VS2005 para su descarga.

1

Es lo mismo que hacer a continuación: LOL

Si está ejecutando la aplicación en Windows 7 modo de X64 que se basan en el objetivo X64, tiene que instalar el siguiente X64 SP1 paquete redistribuible

http://www.microsoft.com/download/en/details.aspx?id=2092

Nota: El archivo de manifiesto debe cambiar a processorArchitecture = X64 y tipo = "win64"

Si usted está construyendo su aplicación con X86 (modo de 32 bits) que se ejecutan en la parte superior de la capa que WOW64 h ave para instalar X86 SP1 paquete redistribuible

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582

Cuestiones relacionadas