Ajout du fichier de ressources à dll VC6
-
21-08-2019 - |
Question
J'ai un certain nombre de VC 6.0 projets (DSP) qui construisent en dll qui ne sont pas des fichiers de ressources. Toute idée comment ajouter des ressources dans un projet existant?
Le projet est prévu pour une version majeure sous peu et je veux ajouter un fileversion à ces dll manque actuellement l'un. Les dll seront recompilied avant la sortie donc je vais juste essayer de faire ces DSPs comme tous les autres, je l'ai hérité de ce projet (qui ont un fichier et version du produit, etc afin que nous puissions facilement dire exactement ce qui est en cours d'exécution sur un la machine du client.
Une réponse: Créer un .rc * et fichier resource.h (copie d'un autre projet?) Et l'ajouter au dossier source de ypur projet en mode fichier VC6. La vue des ressources est automatiquement créé. Merci pour votre aide les gars, m'a donné les indications dont je avais besoin.
La solution
Il suffit d'ajouter un bloc VERSIONINFO au fichier de ressources pour la DLL.
Ouvrez le fichier .rc et utilisez « Insérer / ressources ... / Version » et vous obtiendrez une nouvelle ressource VERSIONINFO avec un tas de valeurs par défaut. Si le projet n'a pas déjà un fichier de ressources, vous pouvez ajouter un à l'aide « Fichier / Nouveau ... / script de ressources ».
Si vous voulez rouler votre propre, un exemple est donné bloc VERSIONINFO
sur la page MSDN pour 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
Autres conseils
Vous pouvez toujours essayer utiliser pour changer la editbin /VERSION:#[.#]
version au sein du dll lui-même. Dans le cas contraire, il devrait être une entrée dans le fichier de ressources du projet.
Patrick, a fait ajouter le bloc versioninfo fait ajouter à votre versioning DLL? Et même je veux dire quand vous passez la souris sur le fichier binaire fait le popup versioning ... ou clic droit> Propriétés> Détails montre pas versioning non plus ...
Cela fonctionne pour exe (s), mais chaque fois que j'ajouter versioninfo blocs à un rien de la bibliothèque apparaît.
EB
D'accord, je pensais partager mon ignorance aujourd'hui ... apparemment ce ne versioning fonctionne vraiment pour exe (s) et dll (s) donc termine mon espoir de l'utiliser sur les bibliothèques statiques pour une vue rapide du versioning