Добавление файла ресурсов в VC6 dll
У меня есть несколько проектов VC 6.0 (dsps), которые встроены в dll, у которых нет файлов ресурсов. Есть идеи, как добавить ресурсы в существующий проект?
Проект должен быть выпущен в ближайшее время, и я хочу добавить файловую версию для тех библиотек, в которых в настоящее время отсутствует такая версия. Dll будут перекомпилированы перед выпуском, поэтому я просто пытаюсь сделать эти dsps похожими на все остальные, которые я унаследовал с этим проектом (которые имеют версию файла и продукта и т. Д., Чтобы мы могли легко сказать точно, что работает на машина клиента.
Один ответ: создайте файл *.rc и resource.h (скопировать из другого проекта?) И добавьте его в исходную папку проекта ypur в представлении файла VC6. Представление ресурса создается автоматически. Спасибо за вашу помощь, ребята, дали мне указатели, которые мне нужны.
3 ответа
Просто добавьте блок VERSIONINFO в файл ресурсов для DLL.
Откройте файл.rc и используйте "Вставить / Ресурс.../ Версия", и вы получите новый ресурс VERSIONINFO с кучей значений по умолчанию. Если у проекта еще нет файла ресурса, вы можете добавить его, используя "Файл / Новый.../ Сценарий ресурса".
Если вы хотите накатить свой, пример VERSIONINFO
блок указан на странице MSDN для VERSIONINFO:
#define VER_FILEVERSION 3,10,349,0
#define VER_FILEVERSION_STR "3.10.349.0\0"
#define VER_PRODUCTVERSION 3,10,0,0
#define VER_PRODUCTVERSION_STR "3.10\0"
#ifndef DEBUG
#define VER_DEBUG 0
#else
#define VER_DEBUG VS_FF_DEBUG
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
/* The following line should only be modified for localized versions. */
/* It consists of any number of WORD,WORD pairs, with each pair */
/* describing a language,codepage combination supported by the file. */
/* */
/* For example, a file might have values "0x409,1252" indicating that it */
/* supports English language (0x409) in the Windows ANSI codepage (1252). */
VALUE "Translation", 0x409, 1252
END
END
Вы всегда можете попробовать использовать editbin /VERSION:#[.#]
изменить версию в самой DLL. В противном случае это должна быть запись в файле ресурсов проекта.
Патрик, добавление блока versioninfo фактически добавило управление версиями в вашу DLL? Фактически я имею в виду, что при наведении курсора мыши на двоичный файл появляется всплывающее окно управления версиями... или щелкните правой кнопкой мыши> Свойства> Сведения, а также отсутствие версий...
Это работает для exe(s), но всякий раз, когда я добавляю блоки versioninfo в библиотеку, ничего не появляется.
EB
Ладно, подумал, что сегодня я поделюсь своим невежеством... очевидно, это версионирование действительно работает только для exe (s) и dll(s), так что моя надежда на использование статических библиотек заканчивается для быстрого просмотра версий