Adicionando arquivo de recurso para VC6 dll
-
21-08-2019 - |
Pergunta
Eu tenho um número de VC 6.0 projetos (DSPs), que construir em DLLs que não possuem arquivos de recursos. Qualquer idéia de como adicionar recursos em um projeto existente?
O projeto está previsto para um grande lançamento em breve e eu quero adicionar um FileVersion para as DLLs atualmente falta um. As DLLs serão recompilied antes do lançamento por isso estou apenas tentando fazer esses DSPs como todos os outros que eu herdados com este projeto (que têm um arquivo e versão do produto etc, para que possamos facilmente dizer exatamente o que está sendo executado em um máquina do cliente.
Uma resposta: Criar um rc * e arquivo resource.h (cópia de outro projeto?) E adicioná-lo para a pasta fonte de ypur projeto em vista arquivo VC6. O ponto de vista de recursos é criada automaticamente. Obrigado pela vossa ajuda caras, me deu as dicas que eu precisava.
Solução
Basta adicionar um bloco VERSIONINFO para o arquivo de recurso para o DLL.
Abra o arquivo .rc, e use "Insert / Resource ... / Version" e você terá um novo recurso VERSIONINFO com um monte de padrões. Se o projeto ainda não tem um arquivo de recurso, você pode adicionar um usando "Arquivo / Novo ... / Script Resource".
Se você desejar construir sua própria, um bloco de exemplo VERSIONINFO
é dada na MSDN página 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
Outras dicas
Você pode sempre tentar uso editbin /VERSION:#[.#]
para alterar a versão dentro da própria dll. Caso contrário, ele deve ser uma entrada no arquivo de recurso do projeto.
Patrick, se adicionar o versionInfo bloco realmente adicionar o controle de versão para sua DLL? E pela média real I quando você passa o mouse sobre o binário faz o pop-up versões ... ou clique com o botão direito> Propriedades> Detalhes mostra Sem controle de versão ou ...
Isso funciona para exe (s), mas sempre que eu adicionar versionInfo blocos de biblioteca não mostra nada up.
EB
Tudo bem, pensei que iria partilhar a minha ignorância hoje ... aparentemente isso versionamento realmente só funciona para exe (s) e dll (s) assim termina minha esperança de usá-lo em bibliotecas estáticas para uma visualização rápida do controle de versão