L'aggiunta di file di risorse per VC6 dll
-
21-08-2019 - |
Domanda
Ho un certo numero di VC 6.0 progetti (DSP), che costruiscono in DLL che non hanno file di risorse. Qualsiasi idea di come aggiungere le risorse in un progetto esistente?
Il progetto è dovuto per una major release a breve e voglio aggiungere un FileVersion a quelle DLL attualmente manca uno. Le DLL saranno recompilied prima del rilascio quindi sto solo cercando di fare questi DSP come tutti gli altri che ho ereditato con questo progetto (che hanno un file e versione del prodotto, ecc in modo che possiamo facilmente dire esattamente ciò che è in esecuzione su un la macchina del cliente.
Una risposta: Crea un * RC e il file resource.h (copia da un altro progetto?) E aggiungerlo alla cartella di origine di ypur progetto in vista dei file VC6. Il punto di vista delle risorse viene creata automaticamente. Grazie per il vostro aiuto ragazzi, mi ha dato i puntatori di cui avevo bisogno.
Soluzione
Basta aggiungere un blocco VERSIONINFO per il file di risorse per la DLL.
Aprire il file RC, e usare "Inserisci / Resource ... / Version" e si otterrà una nuova risorsa VERSIONINFO con un gruppo di default. Se il progetto non dispone già di un file di risorse, è possibile aggiungere uno usando "File / Nuovo ... / Script risorse".
Se si desidera ripristinare il proprio, un blocco di esempio VERSIONINFO
è dato sul pagina di MSDN per 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
Altri suggerimenti
Si può sempre provare uso editbin /VERSION:#[.#]
cambiare la versione all'interno della DLL stessa. In caso contrario, dovrebbe essere una voce nel file di risorse del progetto.
Patrick, ha fatto aggiungendo il blocco versioninfo in realtà aggiungere il controllo delle versioni per la DLL? E per vero intendo quando si passa il mouse sopra il binario fa la comparsa delle versioni ... oppure fare clic destro> Proprietà> Dettagli non mostra alcun controllo delle versioni o ...
Questo funziona per exe (s), ma ogni volta che aggiungo versioninfo blocchi per una libreria non si presenta.
EB
Va bene, ho pensato di condividere la mia ignoranza di oggi ... a quanto pare questo versioning funziona davvero solo per exe (s) e dll (s) così si conclude la mia speranza di usarlo su librerie statiche per una visualizzazione rapida del versioning