Probleme beim Einbinden von Ressourcen in das .exe File
-
Hallo zusammen.
Versuche gerade Versioninformationen in meiner Ressourcdatei zu erstellen. Das Problem dabei ist, das ich beim Compilieren keine Fehlermeldung erhalte. Wenn ich die entsprechende ".res" Datei öffne sind sämtliche übergebenen Informationen auch gespeichert. Allerdings werden diese nicht in meine ".exe" übernommen.Ich benutze den Visuall C++ Compiler 2008. Express-Edition.
Hier mein Quelltext welchen ich anhand der Infos auf der MSD-Seite aufgebaut habe:
VS_VERSION_INFO VERSIONINFO FILEVERSION 2,0,0,1 PRODUCTVERSION 2,0,0,1 FILEFLAGSMASK 0x0000003FL // VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS 0x1L // VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS 0x4L // VOS__WINDOWS32 FILETYPE 0x0L // hier auf 0x1L weil eine Applikation FILESUBTYPE 0x1L // VFT2_UNKNOWN BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "Comments", "none\0" VALUE "CompanyName", "Firmenname\0" VALUE "FileDescription", "Bills\0" VALUE "FileVersion", "2, 0, 0, 1\0" VALUE "InternalName", "bill\0" VALUE "LegalCopyright", "Copyright (C) 2010\0" VALUE "OriginalFilename", "bill.exe\0" VALUE "ProductName", "Bills\0" VALUE "ProductVersion", "2, 0, 0, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x407, 1200 // 0x407 == deutsch 1200 == unicode END END
Weiß im Moment leider wirklich nicht wo ich den Wurm drinnen hab.
Thx
Ollow
-
1. Komplett falsche Forum. Gehört nach MFC (Visual C++) oder Compiler- und IDE-Forum.
2. Hast du auch angegeben, dass die Ressource zum Projekt gehört und eingefügt werden soll? Kann man unter Eigenschaften/Properties einstellen.Grüssli
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Dann werd ich wohl auch mal in dem Forum posten
Ja in den Eigenschaften sind die Einstellungen soweit richtig.
Er übernimmt ja auch die Icon´s welche ich über die Ressourcendatei lade mit ins Projekt(.exe). Nur die Versionsinformationen schluckt er aus irgendeinem Grund nicht...
-
Das gehört nicht in eine .res Datei sondern in eine .rc Datei!
-
Ja klar. Im Projekt liegt es auch in einer ".rc" Datei. Der Compiler erstellt dann daraus eine ".res" Datei, die er im "Debug" Ordner ablegt.
Diese wenn ich öffne (mit einem Editor), kann ich die Infos auslesen. Werden ja im Klartext gespeichert in der ".res" Datei.Hmm vielleicht liegt es an der Express Edition ?? Das das compilieren von Ressourcen da doch irgendwelche Einschränkungen hat !?!?
-
So hallo nochmal zusammen.
Also im Quelltext lag wirklich kein Fehler vor. Lag wirklich nur am Compiler. Habe das ganze mit der Prof. Edition kompiliert und siehe da, funktionierte einwandfrei.
Vermutlich lassen sich Versionsinfo nicht mit der Express-Editon kompilieren.
Mfg
-
Ich dachte, das muss heißen:
BLOCK "040704B0"
-
Also auf den MSDN-Seiten wird das Beispiel mit "040904E4" angegeben. Hab aber im Internet auch andere Beispiele mit anderen Blocknummern gefunden.
Weiß jetzt nicht ob das an irgend einen Standard gebunden ist. Hab zumindest nichts gefunden evtl. weiß ja jemand mehr.Seite auf MSDN-Center
http://msdn.microsoft.com/en-us/library/aa381058%28VS.85%29.aspx
-
Steht hier:
http://msdn.microsoft.com/en-us/library/aa381049(VS.85).aspx und
http://msdn.microsoft.com/en-us/library/aa381057(VS.85).aspxDie ersten 4 Zeichen definieren in Hex die Sprache. Die zweiten 4 Zeichen die Codepage.
Ich benutze immer:
"000004e4"
Also
VALUE "Translation", 0x0, 1252Sprache 0 = Neutral (LANG_NEUTRAL,SUBLANG_NEUTRAL)
Ich verfasse mein Version-Infos immer "Neutral" und lokalisiere diese nie.
-
Stimmt, eigentlich logisch. Weil die Funktion
VerQueryValue()
benötigt ja die Sprache und die Codepage im Hex-Format. Aber die Aufstellung darüber hab ich irgendwie übersehen..
Besten Dank