Zon-cpp Ответов: 1

Как узнать версию DLL во время компиляции?


Привет,
Мой проект связан с VC2010 . Я использую в этом проекте библиотеку dll. я регистрирую и использую файл ".tlb" этой библиотеки Dll.
#import "C:\Windows\System32\MyDll.tlb" raw_interfaces_only


Как определить версию текущей библиотеки dll, то есть registerd в моей системе, когда я компилирую проект?

Я хочу:
exe-журналы, версия Dll, которая exe-файл компилируется с этим
Я имею в виду:
Я хочу проверить версию Dll во время компиляции (а не во время выполнения!!!)
Я хочу показать "версию времени компиляции" в статическом поле в диалоговом окне "о программе".

Что я уже пробовал:

I want to show "compile time version" of Dll, in a Static box in about dialog.

Richard MacCutchan

Проверьте журналы компоновщика, чтобы узнать, предоставляют ли они эту информацию. Возможно,вам придется использовать опцию" многословный".

Zon-cpp

Я имею в виду: я хочу проверить версию Dll во время компиляции (а не во время выполнения!!!)
Я хочу показать версию времени компиляции в статическом окне в диалоговом окне о программе.

Richard MacCutchan

Как, по-вашему, этого можно достичь, не написав для этого программу?

1 Ответов

Рейтинг:
10

Jochen Arndt

Вы должны создать определенный пользователем шаг сборки, который сделает эту информацию доступной для вашего приложения перед компиляцией. Видеть Понимание об этапах настраиваемого построения и событиях построения (по сравнению с 2010 г.)[^].

Возможным решением было бы написать пакетный / командный файл, который получает строку версии из библиотеки DLL и создает заголовочный файл, содержащий одну строку с определением строки версии. Ваш исходный файл диалогового окна about box может включать этот заголовочный файл.

Чтобы получить версию из библиотеки DLL, вам нужен инструмент командной строки. Одним из решений является использование PowerShell с

(Get-Item path-to-dll).VersionInfo.FileVersion

Другое решение состоит в том, чтобы использовать Sigcheck[^] утилита от SysInternal инструменты.

Или написать нашу собственную утилиту, которая считывает информацию с помощью Функция GetFileVersionInfo (Windows)[^] и создает заголовочный файл.


Zon-cpp

спасибо @Jochen Arndt, я постараюсь сделать эти решения и прокомментировать вам результат.