VerQueryValue Fileversion не соответствует оболочке Windows - PullRequest
0 голосов
/ 22 января 2009

Я использую VerQueryValue для извлечения строк из VersionInfo DLL.

Все работает нормально, за исключением того, что FileVersion, отображаемый в Проводнике (щелчок правой кнопкой мыши по файлу, Свойства, Сведения, «Версия файла»), не соответствует строке, которую я получаю из VerQueryValue.

Все мои другие вызовы VerQueryValue работают нормально, но FileVersion, похоже, получает те же данные, что и ProductVersion. Я пробовал два разных компонента «информация о версии», написанных на разных языках (C ++ и Delphi), и оба демонстрируют это поведение, поэтому я не думаю, что это ошибка в моем (или их) коде.

Две возможности, о которых я могу думать:

  • Ошибка в VerQueryValue
  • или оболочка Windows фактически отображает что-то отличное от строки FileVersion.

Кто-нибудь знает, что это может быть?

Ответы [ 2 ]

1 голос
/ 22 января 2009

Установлен ли для параметра lpSubBlock (2-й параметр) VerQueryValue правильное значение для локали, в которой вы находитесь? Для Английский - Великобритания это будет:

StringFileInfo\080904E4\FileVersion

На этой странице есть еще несколько идентификаторов языка / набора символов.

0 голосов
/ 10 ноября 2010

Читать это KB160042 , думаю, вы найдете ответ.

...