td84 Geschrieben 4. März 2008 Geschrieben 4. März 2008 Hallo zusammen, ich hoffe, ich bin hier im richtigen Forum. Ich arbeite mit dem Visual Studio 2005, habe gerade etwas rumprobiert und gesehen, dass man einer Resource (.rc) im Resource Browser mehrere Versionen geben kann. - Kann mir jemand erklären, wozu das nützlich ist? - Und wie kann ich das Projekt (die Dll) denn dann mit einer der anderen Versionen erstellen? Freue mich auf Antwort! Viele Grüße Zitieren
pit030771 Geschrieben 6. März 2008 Geschrieben 6. März 2008 Was willst du denn genau machenmit den rc dateien? Zitieren
td84 Geschrieben 11. März 2008 Autor Geschrieben 11. März 2008 Nehmen wir an, eine (bis auf den Namen und die Version identische) Dll soll an 2 Kunden rausgehen, der eine bekommt die Dll mit dem Namen abc.dll in der Version 2.0 und der andere mit dem Namen xyz.dll in der Version 1.2. Wenn ich nur eine Resource-Datei hätte, und an diese 2 "Versionsobjekte" (oder wie auch immer man es nennen mag) hängen würde, wie würde ich die einzelnen "Versionsobjekte" dann ansprechen? Also "wenn ich in Konfiguration A baue, nimm Versionsobjekt1, ansonsten nimm Versionsobjekt2". Zitieren
Klotzkopp Geschrieben 11. März 2008 Geschrieben 11. März 2008 Über die Condition-Eigenschaft kannst du jede Ressource an ein Präprozessorsymbol binden. Zitieren
td84 Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Hallo Klotzkopp, danke für deine Antwort. Die Condition-Eigenschaft habe ich gefunden, aber kannst du mir das mit dem Präprozessorsymbol noch genauer erklären? Wo muss das denn definiert werden? Und in die Condition schreibe ich dann nur den Namen dieses Präprozessorsymbols? Zitieren
Klotzkopp Geschrieben 12. März 2008 Geschrieben 12. März 2008 Wo muss das denn definiert werden?In den Projekteinstellungen, unter C/C++ -> Preprocessor -> Preprocessor Definitions. Das ist eine mit Semikolon getrennte Liste von Symbolen. An diese Liste kannst du einfach pro Konfiguration einen anderen Namen anhängen. Und in die Condition schreibe ich dann nur den Namen dieses Präprozessorsymbols?Genau. VC++ setzt das dann in #ifdef-Blöcke in der .rc-Datei um. Zitieren
td84 Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Danke, Klotzkopp, habs gefunden! Ich habe (Bsp.) für mein Projekt eine Konfiguration Kunde_A und eine Konfiguration Kunde_B. Bei Kunde_B habe ich in den Preprocessor Definitions ein Präprozessorsymbol USE_VERSION_KUNDE_B definiert und in die Condition des einen Versionsobjekts habe ich auch USE_VERSION_KUNDE_B geschrieben. Wenn ich die Konfiguration Kunde_B nun baue, wird aber leider immer noch mit dem anderen Versionsobjekt (dem von Kunde_A) gebaut Hast du eine Idee, woran das liegen kann? Zitieren
Klotzkopp Geschrieben 12. März 2008 Geschrieben 12. März 2008 Du musst bei beiden Ressourcen eine Condition setzen (jeweils mit einem anderen Symbol), sonst wird in der Konfiguration Konfiguration Kunde_A das Programm mit beiden Ressourcen erstellt. Zitieren
td84 Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Also jetzt habe ich für Konfiguration Kunde_A ein Präprozessorsymbol USE_VERSION_KUNDE_A und eine Condition USE_VERSION_KUNDE_A. Für Konfiguration Kunde_B habe ich ein Präprozessorsymbol USE_VERSION_KUNDE_B und eine Condition USE_VERSION_KUNDE_B. Egal mit welcher der beiden Konfigurationen ich jetzt baue, wenn ich mir im Explorer über Properties die Einstellungen der erzeugten Dll ansehe, gibt es nicht mal mehr einen Version-Tab... Wo könnte da jetzt was nicht stimmen? :confused: Zitieren
Klotzkopp Geschrieben 12. März 2008 Geschrieben 12. März 2008 Mein Fehler, die Präprozessorsymbole müssen in Resources -> General -> Preprocessor Definitions gesetzt werden. Der Ressourcencompiler hat seinen eigenen Satz an Symbolen. :floet: Zitieren
td84 Geschrieben 12. März 2008 Autor Geschrieben 12. März 2008 Aaaahhh, jetzt klappts auch Vielen Dank für deine Hilfe, Klotzkopp! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.