Question

Si le fichier runtime C ++ msvcr80.dll est absent d'une bibliothèque compilée, y a-t-il un moyen de déterminer quelle version a été utilisée pour créer la bibliothèque ou pour l'exécuter sur une version ultérieure de msvcr80.dll?

Était-ce utile?

La solution

Le package redistribuable VCT CRT SP1 installera les versions RTM et SP1 du runtime C dans % SystemRoot% \ WinSxS (en supposant que vous utilisiez Windows XP ou Vista; Windows 2000 ne le permet pas. soutenir des assemblages côte à côte). Si VC8 est installé, le package redistribuable CRT se trouve dans % ProgramFiles% \ Microsoft Visual Studio 8 \ VC \ redist . Si VC8 n’est pas installé sur votre ordinateur, je pense que vous pouvez télécharger le package redistribuable CRT à partir de Microsoft.com.

De plus, pour savoir exactement quelle version de CRT (par exemple, RTM vs. SP1) est nécessaire pour un binaire construit avec VC8 ou VC9, vous pouvez extraire le manifeste:

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

Cherchez quelque chose comme ça:

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

Mon exécutable nécessite CRT version 9.0.21022.8. Ce numéro de version est également incorporé dans les noms de sous-répertoires WinSxS (malheureusement, il est entouré de hachages):

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

Autres conseils

Dependency Walker vous aidera à répondre à cette question.

Si vous créez et distribuez la DLL mentionnée, envisagez d'utiliser un module de fusion pour CRT Visual C ++ 8.0 dans le cadre de votre programme d'installation.

J'ai remarqué qu'il existe un nouvel outil mt.exe et un nouveau CRT Visual C ++ dans Windows SDK 6.1. J’utilise avec succès le module de fusion dans le programme d’installation InstallShield 12.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top