#warning => Ungültige Präprozessor-Direktive?



  • Hi!

    Ich habe einige Defines in meinem Modul zu Testzwecken und möchte in der endgültigen Version diese Defines gerne entfernt haben.

    Da ich aber gerne dazu neige, so etwas zu vergessen wollte ich beim kompilieren gerne Warnungen ausgeben.

    Das wollte ich mit #warning machen. Leider scheint der Compiler (MS VS 6.0) diese nicht zu kennen. #error kennt er schon, aber das macht wenig Sinn beim Kompilieren.

    In der MSDN bin ich auch nicht viel schlauer geworden.

    Kann mich bitte jemand mit dem Gartenzaun erschlagen, damit ich auf den Trichter komme? *fg*

    Vielen Dank schonmal.



  • Hallo,

    das steht aber in der MSDN, allerdings gibt es keine "#warning"-Direktive, dafür aber ein "Message-Pragma":

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_predir_message.asp

    MfG



  • Danke, daß hilft auch!!

    Aber in der MSDN steht auch #warning drin. Nur leider funzt das nicht.

    Gruß
    Frenzy



  • Frenzy schrieb:

    Aber in der MSDN steht auch #warning drin. Nur leider funzt das nicht.

    wo, bitte, steht das? Ich würde den Link gerne sehen, denn ich bin immer interessiert an nicht-dokumentierten oder nicht-funktionierenden Dingen (etwas nicht funktionierendes wird in der MSDN hoffentlich nicht stehen)

    MfG



  • (etwas nicht funktionierendes wird in der MSDN hoffentlich nicht stehen)

    MCI => command string => play => repeat
    steht da wird aber nicht von Windows angenommen.

    Und mit Sicherheit gibt es noch weitere Fehler.



  • *** schrieb:

    MCI => command string => play => repeat

    mag sein, habe ich noch nie probiert...ich bin bisher noch nie auf gravierende Fehler in der MSDN gestossen, und auch hier gilt "nobody is perfect", "Ausnahmen bestätigen die Regel" usw...

    eigentlich war meine Anmerkung mit den "nicht-funktionierenden Dingen" nur als verschmitzte Anmerkung gedacht, um diesen Fall mit der angeblich nicht funktionierenden, aber vorhandenen #warning-Direktive noch einmal als Link präsentiert zu bekommen, da hätte also gut ein 🙂 hingepaßt...

    MfG



  • Dieser Thread wurde von Moderator/in Gerard aus dem Forum C++ in das Forum MFC mit dem Visual C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Probe-Nutzer schrieb:

    Frenzy schrieb:

    Aber in der MSDN steht auch #warning drin. Nur leider funzt das nicht.

    wo, bitte, steht das? Ich würde den Link gerne sehen, denn ich bin immer interessiert an nicht-dokumentierten oder nicht-funktionierenden Dingen (etwas nicht funktionierendes wird in der MSDN hoffentlich nicht stehen)

    MfG

    Also ich benutze eigentlich immer die MSDN die beim Studio dabei ist und nicht die im Internet und dort stand:

    MSDN schrieb:

    Die bedingte Direktive #warning
    Die Direktive #warning übernimmt als Argument eine Zeichenfolge und generiert während der Kompilierung eine Warnmeldung. Die durch diese Direktive generierten Warnungen werden als normale Compilerwarnungen angezeigt.

    Ebenso wie mit der Direktive #error, können mit dieser Direktive während der Verarbeitung einer Quelldatei durch den Präprozessor vordefinierte Zwangsbedingungen und Widersprüche erkannt werden.

    Syntax

    #warning <Meldungszeichenfolge>

    Der oben gezeigte Meldungszeichenfolgen-Bezeichner enthält die anzuzeigende Warnmeldung. Das folgende Beispiel veranschaulicht die Verwendung der Direktive #warning:

    #if !ABLAUFVERFOLGUNG
    #warning Diese Schnittstelle wurde noch nicht vollständig getestet!
    #endif

    Tritt obige Warnung auf, wird folgende Zeile ausgegeben:

    #warning 'Diese Schnittstelle wurde noch nicht vollständig getestet!' (J5500)



  • ja, aber du mußt natürlich auch aufpassen, zu welcher Referenz das Thema gehört. Hier hätte dir auffallen müssen, daß dieses Thema zur "Referenz zu Visual J++" gehört (immer im Inhaltsverzeichnis nachsehen, wo man sich gerade befindet, wenn man eine Suche über den Index macht!!), also nichts mit C++ zu tun hat. Noch ein kleiner Anhaltspunkt, daß dies zu J++, statt zu C++ gehört, ist in der Warnungs-Zeile zu erkennen:

    #warning 'Diese Schnittstelle wurde noch nicht vollständig getestet!' (J5500)

    und kein C++-Compiler gibt Jxxxx-Meldungen aus...

    MfG



  • Probe-Nutzer schrieb:

    ja, aber du mußt natürlich auch aufpassen, zu welcher Referenz das Thema gehört. Hier hätte dir auffallen müssen, daß dieses Thema zur "Referenz zu Visual J++" gehört (immer im Inhaltsverzeichnis nachsehen, wo man sich gerade befindet, wenn man eine Suche über den Index macht!!), also nichts mit C++ zu tun hat. Noch ein kleiner Anhaltspunkt, daß dies zu J++, statt zu C++ gehört, ist in der Warnungs-Zeile zu erkennen:

    #warning 'Diese Schnittstelle wurde noch nicht vollständig getestet!' (J5500)

    und kein C++-Compiler gibt Jxxxx-Meldungen aus...

    MfG

    irks

    Da kann ich nur sagen: Augen auf beim Eierkauf 🙂

    Habe natürlich nachdem ich bei #error guckte nicht mehr sonderlich weitergeguckt.

    Der Anfang einer jeden Katastrophe ist eine Vermutung!

    *geht mal in sein Körbchen zum Schämen*

    😮


Anmelden zum Antworten