Unterschied < > und " " bei include?



  • Ehm die Hilfe von VS hat nur den Befehl #include für die Windows SDK... wtf, dabei hab ich versucht zu filtern, also irgendwie ist diese Hilfe keine Hilfe.

    Ich finde keine gescheite Erklärung bezüglich der #include Schreibweise->

    #include "exception.h"
    #include <exception>
    

    Ich dachte das ist gleich, nur eine andere Schreibweise und man lässt bei dem letzteren den Datentyp weg, aber ich hab eine Beispiel Klasse, hier exception definiert und in der cpp meckert er, wenn ich die include Anweisung mit <> schreibe. Er meckert nicht beim include, aber wenn es darum geht die Methodenrümpfe zu implementieren, kennt er den Klassennamen nicht :/.
    Bei dem ersten kennt er die doch.
    Also sind beide nicht gleich? Wo liegt der Unterschied?



  • Mit der "..." Schreibweise wird als erstes dein Projektverzeichnis nach dem Header durchsucht, danach die Include-Verzeichnisse des Compilers, bei der Variante <...> sucht der Präprozessor nur im Include-Verzeichnis.

    (und in deinem Fall hast du wohl noch eine Kollision zwischen deiner exception-Klasse und der std::exception, die im Standardheader <exception> definiert ist)



  • Mit Anfuehrungszeichen wird zunaechst im Verzeichnis wo deine Quelldatei liegt gesucht. Wenn sie dort nicht ist wird in den angegebenen Include-Verzeichnissen gesucht. Anfuehrungszeichen verwendet man normalerweise bei selbst erstellten Header-Dateien.

    Mit spitzen Klammern wird nur in den Include-Verzeichnissen gesucht. Spitze Klammern verwendet man in der Regel fuer Header-Dateien der Standardbibliothek.



  • Verdammte Axt, warum sagt das keiner, grmpf.

    Danke 🙂

    Verwendest ihr Visual Studio? Kommt bei euch bei #include dort auch nur die Erklärung für die Windows SDK, auch wenn ihr ungefiltert suchst?

    Seltsam, dass solche Begriffe nicht erklärt werden.



  • Wenn man per F1 die Hilfe zu #include (Caret einfach irgendwo bei #include im Sourceeditor setzen und F1 drücken) aufruft bekommt man diesen Artikel:
    The #include Directive
    oder auf der lokalen Hilfe:
    The #include Directive (Lokal)

    Greetz



  • Es kommt ne Meldung, dass es in der Hilfe nicht gefunden wurde.
    Ich bin daja nicht neu, arbeite seit Jahren mit VS05 und C#
    Bei mir kommt zu #include halt nur diese Seite:
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/wmisdk/wmi/_include.htm

    Und der Filter ist deaktiviert


Anmelden zum Antworten