Domanda

Se il runtime C ++ msvcr80.dll manca da una libreria compilata, esiste un modo per determinare quale versione è stata utilizzata per creare la libreria o per farla funzionare su una versione successiva di msvcr80.dll?

È stato utile?

Soluzione

Il pacchetto ridistribuibile CRT VC80 SP1 installerà entrambe le versioni RTM e SP1 del runtime C in % SystemRoot% \ WinSxS (supponendo che tu stia utilizzando Windows XP o Vista; Windows 2000 non supportare assiemi affiancati). Se hai installato VC8, il pacchetto ridistribuibile CRT è in % ProgramFiles% \ Microsoft Visual Studio 8 \ VC \ redist . Se non hai installato VC8, penso che puoi scaricare il pacchetto ridistribuibile CRT da Microsoft.com.

Inoltre, per scoprire esattamente quale versione CRT (ad esempio RTM vs. SP1) è necessaria per un binario creato con VC8 o VC9, è possibile estrarre il manifest:

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

Cerca qualcosa del genere:

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

Il mio eseguibile richiede CRT versione 9.0.21022.8. Questo numero di versione è anche incorporato nei nomi della sottodirectory WinSxS (purtroppo è circondato da hash):

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

Altri suggerimenti

Dependency Walker ti aiuterà a rispondere a questa domanda.

Se stai creando e distribuendo la DLL citata, prendi in considerazione l'utilizzo di un modulo di unione per Visual C ++ 8.0 CRT come parte del tuo programma di installazione.

Ho notato che esiste un nuovo strumento mt.exe e un nuovo CRT Visual C ++ in Windows SDK 6.1. Uso il modulo di unione come prerequisito nell'installer InstallShield 12 con grande successo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top