Añadiendo al archivo de recursos VC6 DLL
-
21-08-2019 - |
Pregunta
Tengo un número de VC 6.0 proyectos (DSP), que construyen DLL que no tienen archivos de recursos. ¿Alguna idea de cómo añadir recursos en un proyecto existente?
El proyecto está previsto para un lanzamiento importante en breve y quiero añadir un fileversion a esos archivos DLL que actualmente carecen de uno. Los archivos DLL se recompilied antes de la liberación, así que estoy tratando de hacer estos DSPs como todos los demás que he heredado con este proyecto (que tiene un archivo y versión del producto, etc, así que podemos decir fácilmente exactamente lo que se está ejecutando en una la máquina del cliente.
Una respuesta: Crear un archivo de .rc * y resource.h (copia de otro proyecto?) Y agregarlo a la carpeta de origen de ypur proyecto en vista de archivos VC6. La vista de recursos se crea automáticamente. Gracias por su ayuda chicos, me dio los punteros que necesitaba.
Solución
Sólo tiene que añadir un bloque VERSIONINFO al archivo de recursos para el DLL.
Abrir el archivo .rc, y el uso de "Insertar / Recursos ... / Versión" y obtendrá un nuevo recurso VERSIONINFO con un grupo de valores predeterminados. Si el proyecto no tiene ya un archivo de recursos, se puede añadir uno usando "Archivo / Nuevo ... / escritura de recursos".
Si quieres liar, un ejemplo VERSIONINFO
bloque se da en la página de MSDN para 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
Otros consejos
Siempre puede intentar el uso editbin /VERSION:#[.#]
cambiar la versión dentro de la propia DLL. De lo contrario, debe haber una entrada en el archivo de recursos del proyecto.
Patrick, hizo añadiendo el bloque versionInfo realidad añadir el control de versiones de la DLL? Y por real me refiero a cuando se pasa el ratón sobre el binario hace el emergente de versiones ... o haga clic derecho> Propiedades> Detalles de versiones no muestra tampoco ...
Esto funciona para exe (s), pero cada vez que agrego versionInfo bloques de una biblioteca no aparece nada.
EB
Bueno, pensé que podría compartir mi ignorancia hoy ... al parecer esto sólo funciona de versiones para exe (s) y DLL (s) así termina mi esperanza de usarlo en las bibliotecas estáticas para una visión rápida del control de versiones