Frage

Ich weiß nicht, RC-Skripte.

Ich möchte Produktversion enthalten, Dateiversion, usw. Metadaten in eine DLL Ich baue. Ich verwende eine RC-Datei, das zu tun. Der Build ist Make-Datei angetrieben. Ich verfolge mit einem Beispiel entlang-RC-scrpit ich gefunden habe.

Die Vorlage RC-Datei enthält afxres.h, aber ich glaube nicht, dass ich das brauche. Aber wenn ich es nur entferne ich eine Reihe von Kompilierungsfehler erhalten.

Was bedeutet einen einfachen, nicht-MFC RC-Skript aus? Kann ich all die Sachen wie diese entfernen:

/////////////////////////////////////////////////////////////////////////////
// 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

....
War es hilfreich?

Lösung 2

Meine Antwort:
NEIN, ich brauche nicht alles Mist. Hier ist ein RC-Skript, das für VERSION funktioniert.

#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 es mit:

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

Andere Tipps

Ich hatte ein ähnliches Problem, wenn sie versuchen, ohne MFC zu kompilieren. Die Lösung von Cheeso wäre nicht angemessen für mich arbeiten.

Alles in Ordnung zusammengestellt, und ich sah keine Fehler / Warnungen im Gebäude. Das Symbol, das in meiner Ressource-Datei definiert wurde korrekt in ‚Windows-Explorer‘ angezeigt. Allerdings waren die Versionsdaten nicht zur Verfügung. (Was zu sehen ist, wenn die rechte Maustaste auf den ausführbaren Datei und Auswahl Eigenschaften. In diesem Fall gibt es keine ‚Version‘ Tab vorhanden.)

Um es Arbeit hatte ich die folgenden Angaben enthalten an der Spitze der RC-Datei hinzuzufügen:

#include <windows.h>

Mit dieser Änderung würde die Version Registerkarte in den Eigenschaften der ausführbaren Datei angezeigt. Auch die .NET System.Diagnostics.FileVersionInfo Klasse ist nun in der Lage die Versionsinformationen zu bekommen, während diese nicht vor funktionieren würde.

defaultly "stdafx.h" würde "windows.h". Ich bin mir nicht sicher, warum windows.h erforderlich ist, aber es scheint, den Unterschied in meinem Fall zu machen.

Edit:. Hinzugefügt einige speziellere Informationen als Reaktion auf Cheeso

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top