define unter VC++ 2005



  • Hallo,

    ich habe einen Source-Code übernommen aus einer anderen Entwicklungsumgebung, wo ich folgende 2 Deklarationen modifiziert übernehmen und mit MS C++ 2005 kompilieren möchte.
    Im Original sehen die 2 Deklarationen folgendermassen aus:

    standard=C:/xxx
    #include ":standard:abc.def"
    #include "^xyz.def"

    :standard: ist ein Verweis auf ein Verzeichnis
    ^ bedeutet "eine Verzeichnisebene oberhalb der aktuellen"

    nun wäre die einfachste Lösung in VC++ 2005:

    #define :standard: C:\xxx\
    #define ^ ..\

    #include ":standard:abc.def"
    #include "^xyz.def"

    aber das versteht der C++ Compiler ja nicht.
    Wie kann ich das lösen?

    Ich will halt die Originalzeilen
    #include ":standard:abc.def"
    #include "^xyz.def"
    nicht verändern.



  • Das Zeichen "^" ist nicht als Define-Name zulässig, d.h. du mußt für den Präprozessor das Zeichen wohl ersetzen müssen (quasi einen Prä-Präprozessor).
    Wenn es einmalig sein soll dann einfach nach "^ suchen und durch einen Define-Namen ersetzen.

    Du kannst folgendes (für C und C++) benutzen:

    #define MY_PATH "../"
    #include MY_PATH "abc.def"
    

    Analog dann für ":standard:" die Ersetzung durchführen.

    Was ist denn das für eine IDE (bzw. aus welcher Sprache stammt der Originalcode)?



  • Erstmal Danke für deinen Tip.
    Aber wir wollen das umbenennen des Originalcodes eigentlich vermeiden...

    Der Originalcode stammt aus einem C-Programm unter dem Realzeit-Betriebssystem iRMX (Intel) bzw. jetzt RfW (Tenasys). Der bringt einen eigenen Compiler mit, der aber nicht so viel (berechtigte) Warnungen ausspuckt wie der Compiler von VC2005...



  • Um das Verändern des Codes wirst du aber nicht drum herum kommen, denn dein Original-Code ist kein gültiger C (bzw. C-Präprozessor) Code.


Log in to reply