Pregunta

No sé guiones RC.

Quiero incluir la versión del producto, la versión del archivo, etc. metadatos en un archivo DLL que estoy construyendo. Estoy usando un archivo .rc para hacer eso. La acumulación es impulsado makefile. Estoy siguiendo a lo largo con un ejemplo .rc scrpit que encontré.

La plantilla .rc archivo incluye afxres.h, pero no creo que necesito. Pero si acabo de quito consigo un montón de errores de compilación.

Lo que hace un no MFC-RC mirada guión básico, como? ¿Puedo eliminar todas las cosas de esta manera:

/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

....
¿Fue útil?

Solución 2

Mi respuesta:
NO, no necesito toda esa basura. Aquí hay un script RC que funciona para VERSIONINFO.

#define VER_FILEVERSION          1,2,3,4
#define VER_FILEVERSION_STR      "1.2.3.4"
#define VER_PRODUCTVERSION       1,2,0,0
#define VER_PRODUCTVERSION_STR   "1.2.0.0"

// -------------------------------------------------------

VS_VERSION_INFO VERSIONINFO
 FILEVERSION            VER_FILEVERSION
 PRODUCTVERSION         VER_PRODUCTVERSION
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
    BLOCK "040904b0"
    BEGIN
    VALUE "CompanyName",      "Company X"
    VALUE "FileDescription",  "Description Goes Here"
    VALUE "InternalName",     "NotSure"
    VALUE "LegalCopyright",   "Copyright (C) 2009 Your Name Here"
    VALUE "OriginalFilename", "DllName.dll"
    VALUE "ProductName",      "Product Title"
    VALUE "FileVersion",      VER_FILEVERSION_STR
    VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
    END
END
BLOCK "VarFileInfo"
BEGIN
    VALUE "Translation", 0x409, 1200
END
END

Conmpile con:

$(WindowsSDK)\bin\RC.exe /FoProjectName.res ProjectName.rc

Otros consejos

Yo tenía un problema similar cuando se trata de compilar sin MFC. La solución de Cheeso no funcionaría adecuadamente para mí.

Todo lo compila bien, y no vi errores / advertencias durante la construcción. El icono que se definió en mi archivo de recursos se muestra correctamente en 'Windows Explorer'. Sin embargo, los datos de la versión no estaba disponible. (Que se puede ver al hacer clic derecho sobre las propiedades ejecutables y selección. En este caso no hubo 'versión' pestaña actual.)

Para conseguir que funcione he tenido que añadir la siguiente incluir en la parte superior del archivo .rc:

#include <windows.h>

Con este cambio, la pestaña versión aparecería en las propiedades del ejecutable. Además, la clase .NET System.Diagnostics.FileVersionInfo es ahora capaz de obtener la información de versión, mientras que esto no iba a funcionar antes.

defaultly "stdafx.h" incluiría "windows.h". No estoy seguro de por qué windows.h se requiere, pero parece hacer la diferencia en mi caso.

Editar:. Añadido alguna información más específica, en respuesta a Cheeso

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top