2010-04-13 7 views
7

Ich schaute auf vorherige Post basierend auf diese, aber sie beziehen sich nicht. Ich erhalte den folgenden Fehler.fataler Fehler C1083: Kann nicht öffnen Include-Datei

1>c:\users\numerical25\desktop\intro todirectx\introtodirectx\chapter 4\init direct3d\init direct3d.cpp(9) : fatal error C1083: Cannot open include file: 'd3dApp.h': No such file or directory 

Aber klar aus dem Bild unten, seine dort

alt text

In entgegensetzen zu anderen Menschen gezeigt, die Probleme sind mit der Kopfzeile auf dem physischen Laufwerk zu finden. Der Compiler kann meinen Header nicht im Solution Explorer finden.

Antwort

14

Was Sie im linken Bereich der IDE sehen, hat absolut nichts damit zu tun, ob die Datei da ist oder nicht. Der "Projektmappen-Explorer" untersucht nicht die tatsächlichen Dateien im Dateisystem. Er zeigt Ihnen lediglich, welche Dateien als Teil dieser Lösung registriert sind.

Damit der Code kompiliert werden kann, muss die Datei im Dateisystem Ihres Computers in einem der Pfade vorhanden sein, die als Suchpfade für Headerdateien dieser Lösung angegeben sind. Es ist nicht vorhanden, daher der Fehler.

+0

ok, was du gesagt hast, macht viel Sinn, aber ich bin nur ein wenig verwirrt darüber, was als nächstes zu tun ist. Sollte ich einen Ordner namens Headers erstellen und die Header-Datei physisch einfügen. Dann fügen Sie es zu den Include-Verzeichnissen hinzu? Ich dachte immer, dass alle Dateien im Solution Explorer physische Dateien sind, die in das Projekt eingebettet sind. – numerical25

+0

Ok, ich habe die Header zum Stammordner hinzugefügt, wo meine .sln Dateien sind und jetzt können sie gefunden werden. – numerical25

0

Lösungsansicht und Dateiansicht haben manchmal keine Beziehung; Jede Datei, die Sie der Lösungsansicht hinzufügen, ist ein Eintrag in einer XML-Datei. Die Direktive #include sieht normalerweise nach dem Durchsehen von Include-Pfaden den Standort des physischen Laufwerks an.

Mein Vorschlag ist, den direct3d.h Include-Pfad zu den Projekteinstellungen hinzuzufügen. Dies ist der empfohlene Weg, da es das Upgrade auf neuere Versionen des SDK ohne Probleme macht (und es ist eine gute Übung für externe Bibliotheken).

+0

ok, aber ich habe Probleme mit der d3dApp.h. Das ist ein benutzerdefinierter Header, den ich in den Header-Ordner lege. Sie haben diesen Header-Ordner automatisch für mich erstellt. Warum fällt es mir so schwer, Header-Dateien zu finden, die ich hineingesteckt habe? – numerical25

5

Stellen Sie sicher, dass das Verzeichnis, in dem sich die Kopfzeile befindet, in den Projekteinstellungen enthalten ist (C/C++ → Allgemein → Zusätzliche Include-Verzeichnisse).

+0

Der Header befindet sich im Header-Ordner im Solution Explorer. Es gibt keinen Header-Ordner, der sich irgendwo in der Nähe der SLN-Datei auf dem physischen Laufwerk befindet. Wenn ich zu zusätzlichen Includes gehe, kann ich nur Ordner auf dem physischen Laufwerk durchsuchen. Der Header Ordner im obigen Bild befindet sich nur in der .sln – numerical25

+0

Arbeitete für mich! Vielen Dank. –

Verwandte Themen