Рейтинг:
10
Jochen Arndt
На этот вопрос было бы трудно ответить любому, кто не видел вашего предыдущего вопроса Как узнать версию DLL во время компиляции?[^]
Пример использования sigcheck утилита из пакета SysInternals:
@ECHO off
REM Specify source directory of your project here
SET outputdir=c:\projects\myproject\
REM Execute sigcheck to print only file version and redirect to a temp file
path-to-sigcheck\sigcheck -n -q path-to-dll >%outputdir%temp.txt
REM Get file content into a variable
SET /p FILEVER=<%outputdir%temp.txt
REM Create header file
ECHO #pragma once > %outputdir%dll_ver.h
ECHO #define MY_DLL_VERSION _T("%FILEVER%") >> %outputdir%dll_ver.h
REM Uncomment to show the created file
REM type %outputdir%dll_ver.h
[РЕДАКТИРОВАТЬ]
Добавлено
_T()
макрос к строке, напечатанной в заголовочном файле.
[/РЕДАКТИРОВАТЬ]
Zon-cpp
Я хочу получить версию "моего файла" в CustomBuildStep моего проекта и записать ее в текстовый файл. затем в окне о программе покажите этот текстовый файл как версию моего файла.
Jochen Arndt
Сначала вам нужна утилита, чтобы получить версию из файла.
Я использовал sigcheck в моем примере.
Пример записывает выходные данные в текстовый файл (temp.txt в моем примере).
Затем он создает файл заголовка dllver.ч Я сделал это потому, что он может быть включен в ваш исходный файл (#include "dll_ver.h"
). Там вы можете использовать строку MY_DLL_VERSION для создания строки, которая будет отображаться в диалоговом окне.
Сохраните файл примера с помощью .летучая мышь расширение и выполнить его как пользовательский шаг сборки.
Zon-cpp
Спасибо, это то, чего я хочу.
Но как мне получить утилиты" sigcheck"?
Jochen Arndt
По ссылке в моем предыдущем ответе:
https://technet.microsoft.com/en-us/sysinternals/bb897441.aspx