2009-01-22 8 views
0

J'utilise le VerQueryValue pour récupérer des chaînes à partir d'une VersionInfo d'une DLL.VerQueryValue Fileversion ne correspond pas à Windows Shell

Tout fonctionne correctement, sauf que la FileVersion affichée par l'Explorateur (cliquez avec le bouton droit sur le fichier, Propriétés, Détails, "Version du fichier") ne correspond pas à la chaîne que je reçois de VerQueryValue.

Tous mes autres appels à VerQueryValue fonctionnent correctement, mais FileVersion semble récupérer les mêmes données que ProductVersion. J'ai essayé deux différents composants "version info" écrits en différentes langues (C++ et Delphi), et tous les deux montrent ce comportement, donc je ne pense pas que ce soit un bug dans mon (ou leur) code.

Deux possibilités que je peux penser:

  • Un bug dans VerQueryValue
  • ou, le shell Windows affiche fait autre chose que la chaîne FileVersion.

Quelqu'un sait-il ce que c'est susceptible d'être?

Répondre

1

Le paramètre lpSubBlock (le deuxième paramètre) de VerQueryValue est-il défini sur la valeur correcte pour les paramètres régionaux dans lesquels vous vous trouvez? Pour Anglais - Royaume-Uni ce serait:

StringFileInfo\080904E4\FileVersion 

This page a quelques autres identifiants langue/jeux de caractères.

-1

Lisez ceci KB160042, je pense que vous trouverez votre réponse.

+0

Bienvenue chez SO. Jetez un oeil à la [faq] (http://stackoverflow.com/faq) pour commencer. S'il vous plaît ne pas simplement jeter des liens. Fournissez une explication à ce qu'ils pointent et comment ce contenu répond à la question. – pmr

Questions connexes